今天偶尔看到了以前做过的一道题
以前我是这么做的。。。
#include <iostream>
using namespace std;
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
int a[3]={0};
a[0]=n;
for(int i=1;i<m;i++)
{
for(int j=0;j<3;j++) //用长度为3的数组模拟
{
a[j]*=n;
}
for(int j=0;j<3;j++)
{
while(a[j]>=10){a[j+1]++;a[j]-=10;}
}
}
for(int i=2;i>=0;i--)
{
if(a[i]!=0)
{
for(int j=i;j>=0;j--)
{
cout<<a[j];
}
cout<<endl;
break;
}
}
}
return 0;
}
一下没忍住笑出了声。。。哈哈哈
下面再给出我马上想到的一个算法
#include<iostream>
using namespace std;
int main()
{
int n,m,sum=1;
while(cin>>n>>m)
{
for(int i=0;i<m;i++)
{
sum*=n;
sum%=1000; //三位数字,对1000取模即可
}
cout<<sum;
sum=1;
}
return 0;
}
不过我觉得当初用数组模拟的我还蛮可爱的 哈哈哈
算法这条路还很长 加油咯!