HDU 2035人は人に会ってA^B(水~)を爱します

1329 ワード

DescriptionはA^Bの最後の3桁で表される整数を求める.Input入力データには複数のテストインスタンスが含まれており、各インスタンスが1行を占め、2つの正の整数AとBからなる(1<=A、B<=10000)、A=0、B=0であれば入力データの終了を表し、各テストインスタンスについてOutputを処理しないで、A^Bの最後の3桁で表される整数を出力し、各出力が1行Sample Input 2 3 3 3 6 6789 10000 0 Sample Output 8 984 Solution水題を占めている.もともと高速べき乗を使いたかったのですが、データ範囲を見て思い切って暴力を振るってOrzコードに直接乗ろうとしました
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b),a||b)
    {
        int ans=1;
        for(int i=0;i<b;i++)
            ans*=a,ans%=1000;
        printf("%d
"
,ans); } return 0; }