求符合指定规则的数
给定函数d(n) = n + n的各位之和,n为正整数,如 d(78) = 78+7+8=93。 这样这个函数可以看成一个生成器,如93可以看成由78生成。
定义数A:数A找不到一个数B可以由d(B)=A,即A不能由其他数生成。现在要写程序,找出1至10000里的所有符合数A定义的数。
输出:
1
3
…
#include<iostream>
using namespace std;
int d(int i)
{
int j=i;
int sum=0;
while(i!=0)
{
sum+=i%10;
i/=10;
}
sum=sum+j;
//cout<<"sum="<<sum<<endl;
return sum;
}
int main()
{
for(int i=1;i<10000;i++)
{
for(int j=1;j<10000;j++)
{
if(i!=d(j)&&j<i)
continue;
if(i==d(j))
break;
else
{
cout<<i<<endl;
// system("pause");
break;
}
}
}
return 0;
}