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
2015-12-28 12:21
2015-12-28 12:40
程序代码:#include <iostream>
using namespace std;
const unsigned maxnum = 10000;
int main( void )
{
for( unsigned n=1; n<=maxnum; ++n )
{
unsigned sum = 0;
for( unsigned i=1; i<=n/2; ++i )
if( n%i == 0 )
sum += i;
if( sum == n )
cout << n << endl;
}
return 0;
}
2015-12-28 12:41
程序代码:
#include <iostream>
using namespace std;
#define maxnum 10000
int main()
{
for(int n=1;n<=maxnum;n++)
{
int sum=0;
for(int i=1;i<=n/2;i++) if(n%i==0) sum=sum+i;
if(sum==n) cout<<n<<endl;
}
return 0;
}

2015-12-28 13:26
2015-12-28 15:35
2015-12-28 15:43
程序代码:#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;
}
2015-12-28 22:26
2015-12-31 14:12
[此贴子已经被作者于2016-1-1 11:37编辑过]
2016-01-01 11:34