A simple math problem【打表找规律】

来源:互联网 发布:c语言不同数据类型运算 编辑:程序博客网 时间:2024/06/07 09:02

“玲珑杯”ACM比赛 Round #19
题意:
输入n值,根据题目公式,算出10的第An项次幂;
思路:
根据这两天写题发现,打表找规律进而推公式,是一个不错的好方法,这个题的规律打表就会发现,详看代码中的枚举;

#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#include<vector>#define max_n 10010using  namespace std;typedef long long LL;double a[max_n];int main(){    LL n;    while(~scanf("%lld",&n))    {        LL res=0,ans=n;        while(ans)        {            ans/=10;            res++;        }        if(res==1 || n==10)            printf("%lld\n",n);        else if(res==2)            printf("%lld\n",n+1);        else if(res==3)        {            if(n<999) printf("%lld\n",n+2);            else printf("%lld\n",n+3);        }        else if(res==4)        {            if(n<9998) printf("%lld\n",n+3);            else printf("%lld\n",n+4);        }        else if(res==5)        {            if(n<99997) printf("%lld\n",n+4);            else printf("%lld\n",n+5);        }        else if(res==6)        {            if(n<999996) printf("%lld\n",n+5);            else printf("%lld\n",n+6);        }        else if(res==7)        {            if(n<9999995) printf("%lld\n",n+6);            else printf("%lld\n",n+7);        }        else if(res==8)        {              if(n<99999994) printf("%lld\n",n+7);            else printf("%lld\n",n+8);        }        else if(res==9)        {            if(n<999999993) printf("%lld\n",n+8);            else printf("%lld\n",n+9);        }        else if(res==10)//别忘了枚举这个情况        {            if(n<9999999992) printf("%lld\n",n+9);            else printf("%lld\n",n+10);        }    }    return 0;}