“玲珑杯”ACM比赛 Round #19
题意:
输入n值,根据题目公式,算出10的第An项次幂;
思路:
根据这两天写题发现,打表找规律进而推公式,是一个不错的好方法,这个题的规律打表就会发现,详看代码中的枚举;
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<vector>
#define max_n 10010
using 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;
}