描述
已知长度最大为200位的正整数n,请求出2011^n的后四位。
输入
第一行为一个正整数k,代表有k组数据,k<=200接下来的k行,
每行都有一个正整数n,n的位数<=200
输出
每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0
样例输入
3
5
28
792
样例输出
1051
81
5521
代码
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<cstring> 6 #include<string> 7 #include<cmath> 8 9 using namespace std; 10 11 int main() { 12 int k; 13 cin>>k; 14 string j; 15 for(int i=0; i<k; i++) { 16 cin>>j; 17 int jj; 18 // int jj=(j[j.length()-1]-48)*1+(j[j.length()-2]-48)*10+(j[j.length()-3]-48)*100; 19 if (j.size()<3) j="000"+j; 20 { 21 j=j.substr((int)j.size()-3,3); 22 jj=(j[0]-48)*100+(j[2]-48)+10*j[1]-480; 23 } 24 int r=2011; 25 if(jj%500==0) { 26 cout<<1<<endl; 27 continue; 28 } 29 int u=jj%500; 30 while(u>1) { 31 r*=2011; 32 r%=10000; 33 u--; 34 } 35 cout<<r<<endl; 36 } 37 return 0; 38 }