您的位置:首页 > 其它

sdut_oj_3068 为了相同的前缀-方程式计算

2015-12-05 01:32 204 查看
#include <iostream>
using namespace std;

const long long maxn=999999999;

long long f(int a,int b,int c,int x)
{
long long ans1,s=0,ans=1;
while(a--)
ans*=x;
ans1=ans=ans*b+c;
while(ans1)
{
s+=ans1%10;
ans1/=10;
}
if(s==x) return ans;
else return 0;
}

int main()
{
int a,b,c,i,count1;
long long t,arr[100];
while(cin>>a>>b>>c)
{
count1=0;
for(i=1;i<=81;i++)
{
t=f(a,b,c,i);
if(t>=1&&t<=maxn)
{
arr[count1++]=t;
}
}
cout<<count1<<endl;
if(count1)
{
for(i=0;i<count1;i++)
i==0?cout<<arr[i]:cout<<' '<<arr[i];
cout<<endl;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: