C++的两个小案例
#include<iostream.h>#include<math.h>
#define maxnum 10000
void main()
{
int n,sum,i;
for(n=1;n<=maxnum;n++)
{ sum=0;
for(i=1;i<=n/2;i++)
{if(n%i==0)
sum=sum+i;
if(sum==n)
cout<<n<<endl;
}
}
}
为何最后输出的结果不是6,28,496,8128
#include <iostream> //同版主rsjp,一定要注意代码排版,易于查错,易于阅读 const int maxnum = 10000; //建议使用const int main() //建议放弃非标准写法,main函数返回void(有些编译器通不过的),而是返回int { int n,sum,i; for(n = 1; n <= maxnum; n++) { sum = 0; for(i = 1; i <= n/2; i++) { if(n%i == 0) sum = sum+i; } if(sum == n) //原代码就是这个放错位置了 std::cout << n << std::endl; //不添加名字空间std的cout,会报错的 } return 0; }