题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=532
关于这种数学题,其实还是需要多加训练的。做的多了头脑就灵活了。额!其实这道题也不算太难啦!下面分享一下吧!
主要就是sum函数中的那点代码,如果你看懂了。恭喜你,此题已成小菜!看不懂,没关系,自己找几个大点的测试数据,来调试一番,自己推理一下!Understand!
#include<iostream>
using namespace std;
int res;
int sum(int x,int y)
{
int i,k=1;
for(i=0;i<y;i++)
k*=9;
return k*x;
}
bool flag(int y)
{
int x,z=0;
while(y)
{
x=y%10;
y=y/10;
if(x==0)
return false;
res+=sum(x,z);z++;
}
return true;
}
int main()
{
int n;
while(cin>>n)
{
res=0;
if(n==0||!flag(n))
cout<<"Unlucky"<<endl;
else
cout<<res<<endl;
}
return 0;
}