64,646
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<vector>
using namespace std;
int cal(unsigned int val )
{
unsigned int n=1;
int m=2011;
while(n++<val)
{
m*=2011;
m=m%10000;
}
return m;
}
int main()
{
int n;
cin>>n;
vector<int>vec;
int m;
for(int i=1;i<=n;++i)
{
cin>>m;
vec.push_back(m);
}
for(int i=0;i!=vec.size();++i)
cout<<cal(vec[i])<<endl;
return 0;
}
求2011的N次方的后四位,时间限制1000ms 运行时间超时,求解,#include<iostream>
#include<vector>
using namespace std;
int cal(unsigned int val )
{
unsigned int n=1;
int m=2011;
while(n++<val)
{
m*=2011;
m=m%10000;
}
return m;
}
inline int four(const int num)
{
return num%500;
}
int main()
{
int array[501];
for(int i=1;i!=501;++i)
{
array[i]=cal(i);
}
int n;
cin>>n;
vector<int>vec;
int m;
for(int i=1;i<=n;++i)
{
cin>>m;
vec.push_back(m);
}
for(int i=0;i!=vec.size();++i)
cout<<array[four(vec[i])]<<endl;
return 0;
}