栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA项目二-拓展训练4

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA项目二-拓展训练4

文章目录
  • 打好Java编程基础(拓展训练)
    • 任务1、打印水仙花数
      • (1)代码编写
      • (2)输出结果
    • 任务2、输出指定范围内的闰年
      • (1)代码编写
      • (2)输出结果
    • 任务3、判断一个整数是不是素数
      • (1)代码编写
      • (2)输出结果

打好Java编程基础(拓展训练) 任务1、打印水仙花数
  • 所谓水仙花数,是指等于其各位数字立方和的三位数
  • 分析问题,首先水仙花数是三位数,那么我们可以确定范围:[100, 999],这个我们可以通过循环结构来搞定:
for (int n = 100; n <= 999; n++) {
    ...
}

  • 然后对于这个范围的每个数n,我们要去判断它是否等于其各位数字的立方和,这里的难点或关键在于如何分解一个三位数,得到它的每位数字
  • 假设我们已经把三位数n分解成百位数p3,十位数p2,个位数p1,这样我们的筛选条件就可以写出来:n == p3 * p3 * p3 + p2 * p2 * p2 + p1 * p1 * p1。
  • 如何拆分一个三位数n(375)呢?
  • 首先求n的个位数:n % 10 = 375 % 10 = 5
    然后要将三位数变成两位数:n = n / 10 = 375 / 10 = 37;
    对于新的两位数n,又求它的个位数:n % 10 = 37 % 10 = 7
    然后要将两位数变成一位数:n = n / 10 = 37 / 10 = 3;
  • 我们可以交替使用求余和整除运算将一个三位数拆分,得到它的个位数、十位数和百位数。当然这个分解方法可以推广到任何多位数的拆分
(1)代码编写
public class t06 {
    public static void main(String[] args) {
        int x = 0; //定义水仙花数的个数
        for(int i=100; i<=999; i++){
            int a = i/100; //百位
            int b = (i-100*a)/10; //十位
            int c = (i-b*10-a*100); //个位
            if(i == a*a*a+b*b*b+c*c*c){
                x++;//每次符合水仙花数条件,则x+1;
                System.out.println(i + " = " + a+"^3 + " + b +"^3 + "+ c+"^3"); //输出符合条件的数
            }
        }
        System.out.println("水仙花数总共有"+x+"个"); //输出水仙花数的总数
    }
}
(2)输出结果

任务2、输出指定范围内的闰年
  • 输出[2000, 2500]内的全部闰年,要求每行输出5个年份
(1)代码编写
public class t07 {
    public static void main(String[] args) {

        //定义部分
        int i=0;
        int count = 0;

        System.out.println("下列数字为【2000~2500】年中的闰年:");

        //处理部分
        for(i=2000;i<=2500;i++)
        {
            if(i%4==0&&i%100!=0)
            {
                System.out.print(i + "t");

                //按五个一行输出
                count++;
                if (count % 5==0) System.out.println();
            }
            else if(i%400==0)
            {
                System.out.print(i + "t");

                //按五个一行输出
                count++;
                if (count % 5==0) System.out.println();
            }
        }
    }
}

(2)输出结果

任务3、判断一个整数是不是素数
  • 输入一个整数,判断它是不是素数
(1)代码编写
import java.util.Scanner;


public class t08 {
    public static void main(String[] args) {
        int x;
        Scanner sc = new Scanner(System.in);

        boolean isPr;

        System.out.print("输入一个整数:");
        x = sc.nextInt();

        isPr = true;
        for  (int i = 2; i <= Math.sqrt(x); i++) {
            if (x % i == 0) {
                isPr = false;//不是素数
                break;//跳出循环
            }
        }
        //对1单独处理
        if (x == 1) {
            System.out.println("1既不是素数,也不是合数。");
        } else if (x > 1) {
            if (isPr == true) {
                System.out.println(x + "是素数。");
            } else {
                System.out.println(x + "不是素数。");
            }
        }
    }
}

(2)输出结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/970273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号