java1000以内的完数
publicstaticvoidmain(String[]args){inti,j;intx=0;for(i=1;i<=1000;i++){for(j=1;j<i;j++...
public static void main(String[] args) {
int i,j;
int x=0;
for(i=1;i<=1000;i++){
for(j=1;j<i;j++){
if(i%j==0){
x=x+j;
}
}
if(x==i){
System.out.print(i+" ");
}
}
}
这样写的话为什么无法显示,x一定要拿到循环里面吗? 展开
int i,j;
int x=0;
for(i=1;i<=1000;i++){
for(j=1;j<i;j++){
if(i%j==0){
x=x+j;
}
}
if(x==i){
System.out.print(i+" ");
}
}
}
这样写的话为什么无法显示,x一定要拿到循环里面吗? 展开
2个回答
2018-09-19
展开全部
x肯定是要放到第一层循环内的,你从1试到1000找完数,每试一个数,这个x都要重新计算的,放在循环外面,是会一直累加的啊,结果肯定就不对了.
public class Demo {
public static void main(String[] args){
for(int i = 1;i<1000;i++){
int sum = 0;
for(int j=1;j<i;j++){
if(i%j == 0){
sum+=j;
}
}
if(sum == i){
System.out.println(i);
}
}
}
}
展开全部
public static void main(String[] args) {
int i, j;
int x;
for (i = 1; i <= 1000; i++) {
x = 0;
for (j = 1; j < i; j++) {
if (i % j == 0) {
x = x + j;
if (x == i) {
System.out.print(i + " ");
}
}
}
}
}
另外你的 int x = 0 ; 后面这个逗号是中文符号!!!建议你以后把输入法设置成中英文都是使用英文符号!!!
int i, j;
int x;
for (i = 1; i <= 1000; i++) {
x = 0;
for (j = 1; j < i; j++) {
if (i % j == 0) {
x = x + j;
if (x == i) {
System.out.print(i + " ");
}
}
}
}
}
另外你的 int x = 0 ; 后面这个逗号是中文符号!!!建议你以后把输入法设置成中英文都是使用英文符号!!!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询