Java常见编程练习题-一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如6=1+2+3.编程找出1000以内的所有完数。求1! + 2! + 3! +…+ 5!。输入一个整数计算该数有多少位

一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如6=1+2+3.编程找出1000以内的所有完数。

public class ForDemo3 {
	public static void main (String[] args) {
        int i,j;
        int num = 0;
        for(i=1; i<=1000; i++){
            num = 0;
            for(j=1; j<i; j++){    //找出这个数的所有因子
                if(i%j == 0){
                    num = num+j;   //将所有因子相加
                }
            }
            if(i == num){          //判断这个数的所有因子之和与它本身是否相等
                System.out.print(i+" ");
            }
        }
	}
}

这段 Java 代码演示了如何找出范围内的完数(Perfect Number)。以下是代码的解析:

  1. public class ForDemo3:定义一个名为 ForDemo3 的公共类。

  2. public static void main(String[] args):程序的主方法。

  3. 外层循环 for (i = 1; i <= 1000; i++):外层循环从 1 遍历到 1000,表示要检查范围内的每个数。

  4. 在外层循环内,初始化变量 num 为 0,用于累加数 i 的因子。

  5. 内层循环 for (j = 1; j < i; j++):内层循环从 1 遍历到 i - 1,用于寻找数 i 的因子。

  6. if (i % j == 0):检查 i 是否能被 j 整除,即 j 是否为 i 的因子。

  7. 如果 ji 的因子,则将其加到变量 num 中,表示所有因子之和。

  8. if (i == num):在内层循环结束后,判断变量 num 是否等于 i,即判断所有因子之和是否与 i 相等。

  9. 如果条件成立,则说明数 i 是完数(其因子之和等于自身),将其输出。

通过嵌套的循环结构,代码遍历范围内的每个数,找出其因子并计算因子之和,然后判断是否是完数,并输出满足条件的完数。完数是指其所有因子(除自身外的因子)之和等于它本身的数。


求1! + 2! + 3! +…+ 5!。

import java.util.*;
public class nine{
	public static void main(String[] args){
		System.out.print("1! + 2! +  3! + 4! + 5! = ");
		int i , c= 1;
		int sum = 0;
                                for(i = 1;i < 6;i++){
			c *= i;
			sum += c;	
		}
		System.out.print(sum);
	}
}

这段 Java 代码计算并输出前 5 个阶乘的和,以下是代码的解析:

  1. import java.util.*:引入 Java 的 util 包,用于使用 Scanner 类。

  2. public class nine:定义一个名为 nine 的公共类。

  3. public static void main(String[] args):程序的主方法。

  4. System.out.print("1! + 2! + 3! + 4! + 5! = ");:打印文本提示。

  5. 初始化变量 i 为 1,用于循环计算阶乘。

  6. 初始化变量 c 为 1,用于保存当前迭代的阶乘值。

  7. 初始化变量 sum 为 0,用于累加阶乘的和。

  8. 循环 for (i = 1; i < 6; i++):从 1 循环到 5,即计算前 5 个阶乘的和。

  9. 在循环中,c *= i; 表示计算当前迭代的阶乘值。

  10. sum += c; 表示将当前迭代的阶乘值累加到总和中。

  11. 循环结束后,输出阶乘和的结果。

该代码通过循环计算前 5 个数的阶乘并累加到总和中,然后输出结果。在代码中,1! 表示 1 的阶乘,2! 表示 2 的阶乘,以此类推。最终输出的结果为这些阶乘的和。

输入一个整数,计算该数有多少位 ,例如123有3位。

import java.util.*;
public class eight{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int x = sc.nextInt();
		int b = 0;
		while(x >= 1){
			x /= 10;
			b++;
		}
		System.out.println("该整数的位数为:");
		System.out.println(b);
	}
} 

这段 Java 代码用于计算输入整数的位数,以下是代码的解析:

  1. import java.util.*:引入 Java 的 util 包,用于使用 Scanner 类。

  2. public class eight:定义一个名为 eight 的公共类。

  3. public static void main(String[] args):程序的主方法。

  4. 创建一个 Scanner 对象 sc,用于接收用户的输入。

  5. 打印提示信息 "请输入一个整数:"

  6. 使用 sc.nextInt() 从用户输入中读取一个整数并赋值给变量 x

  7. 初始化变量 b 为 0,用于计算整数的位数。

  8. 进入 while(x >= 1) 循环,条件是整数 x 大于等于 1。

  9. 在循环内,x /= 10; 表示将整数 x 除以 10,相当于将整数从右往左去掉一个数字。

  10. b++; 表示位数加一。

  11. 循环结束后,打印提示信息 "该整数的位数为:"

  12. 打印变量 b,即输入整数的位数。

该代码通过循环除以 10 的方式来计算输入整数的位数,并将结果输出。例如,输入整数 12345,则输出为 该整数的位数为:5,因为整数有 5 位。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Ale-阿乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值