hdu 1128 Self Numbers

 
题意就是输出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;
}

 

posted @ 2013-05-07 19:42  90后程序媛  阅读(257)  评论(0编辑  收藏  举报