java基础程序
发布网友
发布时间:2023-01-29 10:18
我来回答
共4个回答
热心网友
时间:2024-11-30 07:59
楼主...
你的程序里面,
这一句:
System.out.print(""+i);
没有运行过一次.
只运行了下面这句:
System.out.print("\n");
当然没有显示出来啦
public class FullNumber {
public static void main(String args[]) {
int i, j;
int sum = 0;
for (i = 1; i <= 1000; i++) {
for (j = 1; j <= i / 2; j++) {
if (i % j == 0){
sum = sum + j;
System.out.println("sum is " + sum);
System.out.println("i is " + i);
}
if (sum == i)
System.out.print("sum == i" + i);
}
System.out.print("\n");
}
}
}
改一下,运行后你自己看看
热心网友
时间:2024-11-30 07:59
肯定是没有符合if(sum==i) 这个条件的结果,看你这个程序的目的好像是,找到从1到1000的整数中,所有能被其整除且他们所有的合和其相等的数;
热心网友
时间:2024-11-30 08:00
sum是不会等于i的
sum的值远远大于i,你可在sum=sum+j;后面将sum的值输出来看一下。
热心网友
时间:2024-11-30 08:00
sum = sum + j.是不断的累加,永远不会减小。很明显,当x增加到一定程度时,sum的值会跟它差不多。此时如果有交点。则会有sum==i。可惜不相等。因为可能当i取值为A时。sum的取值为A+1或者A-1。而没达到相交,因为i在外层它再怎么递增下去都不及sum快。所以永运没交点了。
如图