黑马程序员技术交流社区
标题:
帮忙看下代码哪里有误
[打印本页]
作者:
余尚勇
时间:
2013-6-18 01:09
标题:
帮忙看下代码哪里有误
本帖最后由 余尚勇 于 2013-6-18 22:25 编辑
高手帮忙看下代码哪里有误,打印出来什么都没有
//4. 编程实现 求1-1000内所有的完数(一个数如果恰好等于它的因子之和,这个数就称为“完数”。如6就是1个
//完数: 6=1+2+3,因子数就是所有可以整除这个数的数,但是不包括这个数自身.比如15的因子数是 1 3 5)
int sum = 0;
for (int i = 1; i < 1000; i++)
{
for (int j = 1; j <= i / 2; j++)
{
if (i % j == 0)
{
sum += j;
}
}
if (sum == i)
{
Console.WriteLine(i + " ");
}
Console.ReadKey();
作者:
274997322
时间:
2013-6-18 01:37
int sum = 0;
for (int i = 1; i < 1000; i++)
{
sum = 0;
//sum一直在累加,重新算一个数的时候 需要重置
for (int j = 1; j <= i / 2; j++)
{
if (i % j == 0)
{
sum += j;
}
}
if (sum == i)
{
Console.WriteLine(i + " ");
}
}
作者:
y96352
时间:
2013-6-18 06:28
for (int i = 1; i < 1000; i++)
{
int sum = 0; //每次都要重置sum的值
for (int j = 1; j <= i / 2; j++)
{
if (i % j == 0)
{
sum += j;
}
}
if (sum == i)
{
Console.WriteLine(i + " ");
}
}
Console.ReadKey();
作者:
成都—陈超
时间:
2013-6-18 09:29
sum每次循环一个i 都要重置下 ,不然sum一直在累加,就不可能有数符合要求了
for (int i = 1; i < 1000; i++)
{
sum=0; // 在第一层循环加上sum=0; 每次循环sum都重置
for (int j = 1; j <= i / 2; j++)
{
if (i % j == 0)
{
sum += j;
}
}
if (sum == i)
{
Console.WriteLine(i + " ");
}
Console.ReadKey();
作者:
逆_水_寒
时间:
2013-6-18 21:08
把sum=0,在嵌套的那个for前面再写一遍,每次循环重置一下就行了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2