一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如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 位。