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;
}