poj1316(非打表)

http://blog.csdn.net/luxuejuncarl/archive/2007/05/03/1595192.aspx

(借鉴)~**~

View Code
函数的调用会花掉很多时间。

定义一个数组,充分利用数组的下标和值。如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;
}
posted @ 2011-03-03 20:55  聊聊IT那些事  阅读(382)  评论(0编辑  收藏  举报