for you


私信TA

用户名:xu1365

访问量:18871

签 名:

简单,就挺好

等  级
排  名 786
经  验 3594
参赛次数 0
文章发表 29
年  龄 0
在职情况 学生
学  校 桂林电子科技大学
专  业

  自我简介:

解题思路:





注意事项:





参考代码:

#include<stdio.h>

int main()

{int i,j,s,N;

 scanf("%d",&N);

 for(i=1;i<=N;i++)

 {

s=0;//循环后,s的值会改变。所以用重新给它赋值为0

for(j=1;j<=i/2;j++)//注意

if(i%j==0)

{s+=j;}

if(s==i)

printf("%d\n",i);

 }

return 0;

}


 

0.0分

0 人评分

  评论区

for(j=1;j<=i/2;j++)//注意
问一下这一句为什么是 j<=i/2?
直接 j<i 可以吗?
2019-03-26 16:21:14
s=0;//循环后,s的值会改变。所以用重新给它赋值为0
我这里就是没想到  所以一直做不出
一开始全部赋初值为0的习惯果然也不是特别好,完全没想过这个问题  如果那时候没有赋值的话 应该就能想到在这里赋值了
2019-03-26 16:17:35
  • «
  • 1
  • »