hdu-1128(数学问题,筛数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1128
思路:从0,开始,每次求一个数x的d(x),然后判断如果x没有标记,则说明x没有由任意一个d(i)(i<=x)组成,因为d(x)是递增的。
#include<iostream> #include<cstdio> using namespace std; const int maxn = 1000000; int vis[maxn+10]={0}; int main(void) { int i,j,ans; for(i=0;i<=maxn;i++) { ans=i;j=i; while(j) { ans+=j%10; j/=10; } vis[ans]=1; if(!vis[i]) printf("%d\n",i); } return 0; }