同HDU 1128 , POJ 1316(这个范围小一点)。
原本怕超时,以为有技巧或者规律,死命的想,后来发现这就是一道水体,模拟着全部判断一下就好了,10秒呢,完全不怕超时。。。唔,废话有点多。。。
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int isself(int t) { int n=t,len=0,temp,summ,i; while(n) { n=n/10; len++; } len=len*9; for(i=t-len;i<t;i++) { temp=summ=i; while(temp) { summ=summ+temp%10; temp=temp/10; } if(summ==t)return 0; } return 1; } int main() { int i; printf("1 3 5 7 9 "); for(i=20;i<=1000000;i++) { if(isself(i)) printf("%d ",i); } return 0; }