题目:定义一个函数d(x),x是整数,d(x)=x+每位数字的和。求1-1000000没有原象数字输出。
分析:打标计算所有x的d(x)标记,无标记的即为所求。
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
int gen[1000105];
int main()
{
for ( int i = 0 ; i <= 1000000 ; ++ i ) {
int v = i,u = i;
while ( u ) {
v += u%10;
u /= 10;
}
gen[v] = 1;
}
for ( int i = 1 ; i <= 1000000 ; ++ i )
if ( !gen[i] )
printf("%d\n",i);
return 0;
}