这一题很简单,但是要注意mark数组开的范围应该大于1000000.
#include <iostream>
#include <stdlib.h>
using namespace std;
bool mark[1010001];
int change(int n)
{
int ans=0;
while(n)
{
ans+=n%10;
n/=10;
}
return ans;
}
int main()
{
memset(mark,0,sizeof(mark));
int n=1;
int t;
while(n<=1000000)
{
t=change(n);
mark[n+t]=1;
n=n+1;
}
for(int i=1;i<=1000000;i++)
{
if(mark[i]==0)
{
cout <<i<<endl;
}
}
// while(1);
return 0;
}