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一定要拿到循环里面吗?
展开
 我来答
匿名用户
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);
}
}
}
}
cq_kaka
2018-09-19 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:192
采纳率:63%
帮助的人:30.8万
展开全部
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 ; 后面这个逗号是中文符号!!!建议你以后把输入法设置成中英文都是使用英文符号!!!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式