nyoj_532_http://acm.nyist.net/JudgeOnline/problem.php?pid=532

题目来源: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;
}

你可能感兴趣的:(nyoj_532_http://acm.nyist.net/JudgeOnline/problem.php?pid=532)