Description
Input
Output
Sample Output
1 3 5 7 9 20 31 42 53 64 | | <-- a lot more numbers | 9903 9914 9925 9927 9938 9949 9960 9971 9982 9993 代码: #include <iostream> using namespace std; #define N 10000 unsigned g[N]; unsigned sum(unsigned n)//计算各位的数字之和 { if(n<10) return n; else return ((n%10)+sum(n/10)); } void in_sequence(unsigned n) { while(n<N) { unsigned next=n+sum(n);//计算他的下一个满足题意的数 if(next>=N||g[next]!=next)//如果达到上限或者为非字数则返回空 return ; g[next]=n; n=next; } } int main() { unsigned n; for(n=1;n<N;n++) g[n]=n; for(n=1;n<N;n++) in_sequence(n); for(n=1;n<N;n++) { if(g[n]==n) cout<<n<<endl; } return 0; }