一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如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)。以下是代码的解析:
public class ForDemo3
:定义一个名为ForDemo3
的公共类。public static void main(String[] args)
:程序的主方法。- 外层循环
for (i = 1; i <= 1000; i++)
:外层循环从 1 遍历到 1000,表示要检查范围内的每个数。 - 在外层循环内,初始化变量
num
为 0,用于累加数i
的因子。 - 内层循环
for (j = 1; j < i; j++)
:内层循环从 1 遍历到i - 1
,用于寻找数i
的因子。 if (i % j == 0)
:检查i
是否能被j
整除,即j
是否为i
的因子。- 如果
j
是i
的因子,则将其加到变量num
中,表示所有因子之和。 if (i == num)
:在内层循环结束后,判断变量num
是否等于i
,即判断所有因子之和是否与i
相等。- 如果条件成立,则说明数
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 个阶乘的和,以下是代码的解析:
import java.util.*
:引入 Java 的util
包,用于使用 Scanner 类。public class nine
:定义一个名为nine
的公共类。public static void main(String[] args)
:程序的主方法。System.out.print("1! + 2! + 3! + 4! + 5! = ");
:打印文本提示。- 初始化变量
i
为 1,用于循环计算阶乘。 - 初始化变量
c
为 1,用于保存当前迭代的阶乘值。 - 初始化变量
sum
为 0,用于累加阶乘的和。 - 循环
for (i = 1; i < 6; i++)
:从 1 循环到 5,即计算前 5 个阶乘的和。 - 在循环中,
c *= i;
表示计算当前迭代的阶乘值。 sum += c;
表示将当前迭代的阶乘值累加到总和中。- 循环结束后,输出阶乘和的结果。
该代码通过循环计算前 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 代码用于计算输入整数的位数,以下是代码的解析:
import java.util.*
:引入 Java 的util
包,用于使用 Scanner 类。public class eight
:定义一个名为eight
的公共类。public static void main(String[] args)
:程序的主方法。- 创建一个
Scanner
对象sc
,用于接收用户的输入。 - 打印提示信息
"请输入一个整数:"
- 使用
sc.nextInt()
从用户输入中读取一个整数并赋值给变量x
。 - 初始化变量
b
为 0,用于计算整数的位数。 - 进入
while(x >= 1)
循环,条件是整数x
大于等于 1。 - 在循环内,
x /= 10;
表示将整数x
除以 10,相当于将整数从右往左去掉一个数字。 b++;
表示位数加一。- 循环结束后,打印提示信息
"该整数的位数为:"
- 打印变量
b
,即输入整数的位数。
该代码通过循环除以 10 的方式来计算输入整数的位数,并将结果输出。例如,输入整数 12345,则输出为 该整数的位数为:5
,因为整数有 5 位。