可以去大神的博客看题解
https://www.cnblogs.com/linliu/p/5547089.html
重要提示:一个数n可以表示为10^x,即对于任意一个数n,存在x(不一定是整数)使n=10^x。
注意格式补前导0。
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1000;
ll qpow(ll a, ll b)
{
ll ans = 1, base = a;
while (b != 0)
{
if (b & 1 != 0)
ans = ans*base%mod;
base = base*base%mod;
b >>= 1;
}
return ans;
}
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int t;
scanf("%d",&t);
for(int j=1; j<=t; j++)
{
int n,k;
scanf("%d%d",&n,&k);
double x = log10((double)n)*k;
x = x - floor(x)+2;
int ans = pow(10.0,x);
cout << "Case " << j << ": " << ans<< " " << setfill('0') << setw(3) << qpow(n, k) << endl;
}
return 0;
}