ZZULIOJ 1090:整数乗(マルチインスタンス試験)

タイトル説明

(1 <= A、B <= 1000)の最後の3桁を求める整数A ^ B

エントリー

N、ある入力整数の最初の行は、テストケースは、2つの正の整数A、Bが与えられると、はn行の各行一例であるを表します

輸出

各テストケースのために、(先頭の0を含まない)A ^ Bの最後の三つの出力、別の行。

サンプル入力

2 
2 3 
12 6

サンプル出力

8 
984

ヒント:1 errotその結果、オーバーフローへの配慮がないので、直接POW()関数を開始します

2 3の数を求めた後に、1000の番号を直接要求ビットの同様の数引き継ぐことができ、私の数は10にかかりました

多数3操作を法、各一回のモジュロ剰余を乗算し、その後、残りの結果を取ることができます

     8 ^ 3〜7%、8%= 1 7 1 * 8%7 = 1 * 8%7 = 1

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main(){
	int num,a,b,ret=1;
	scanf("%d",&num);
	for (int i = 0; i < num; i++)
	{
		ret = 1;
		scanf("%d%d",&a,&b);
		for (int j = 0; j < b; j++)
		{
			ret *= a;
			ret %= 1000;
		}
		printf("%d\n",ret);
	
		
	}
	
}

 

公開された122元の記事 ウォン称賛58 ビュー40000 +

おすすめ

転載: blog.csdn.net/qq_39112646/article/details/104055370