题意就是输出1000000这个范围内的数字,这个数不存在一个数和他的俩位数相加等于它本身。例如3不存在。但4就等于2+2, 10等于5+5, 11等于10+1+0, 12等于6+6;就是这个意思了。但9就不存在这么一个数。
View Code
#include <iostream> using namespace std; const int N = 1000001; //存放相加后的数字 bool str[1000010]; void fac(int n) { int sum = n; while(n) { sum+=n%10; n/=10; } str[sum] = 1; } int main() { int i, j; for(i = 1; i < N; i++) { fac(i); } for(j = 1; j < N; j++) { if(!str[j]) //如果不存在这个数,就输出。 printf("%d\n",j); } return 0; }