http://blog.csdn.net/luxuejuncarl/archive/2007/05/03/1595192.aspx
(借鉴)~**~
![ContractedBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
函数的调用会花掉很多时间。
定义一个数组,充分利用数组的下标和值。如int a[ 1000 ],把下标和值都利用上。
#include < iostream >
using namespace std;
#define MAX 10003
int main()
{
int i, b, sum, a[MAX] = { 0 };
for (i = 1 ; i < MAX; i ++ )
{
b = sum = i;
while (b)
{
sum += b % 10 ;
b /= 10 ;
}
if (sum < MAX)
a[sum] = 1 ;
}
for (i = 1 ; i < MAX; i ++ )
if (a[i] == 0 )
printf( " %d\n " , i);
return 0 ;
}
定义一个数组,充分利用数组的下标和值。如int a[ 1000 ],把下标和值都利用上。
#include < iostream >
using namespace std;
#define MAX 10003
int main()
{
int i, b, sum, a[MAX] = { 0 };
for (i = 1 ; i < MAX; i ++ )
{
b = sum = i;
while (b)
{
sum += b % 10 ;
b /= 10 ;
}
if (sum < MAX)
a[sum] = 1 ;
}
for (i = 1 ; i < MAX; i ++ )
if (a[i] == 0 )
printf( " %d\n " , i);
return 0 ;
}