任意次方後的最後三位數——c語言算法實現

題目:


求一個整數任意次方的最後三位數,即x^y的最後三位數,要求x,y從鍵盤輸入


解析:


取最後三位數,我們首先想到的肯定是用取餘運算,如果直接將運算結果來進行取餘的話就會有越界的危險,因此,我們可以將冪運算分開來做,每次相乘後都取其最後三位,如:8^3,先算8*8,取其後三位,再算64*8,再取其後三位,這樣就不會越界。


#include "stdio.h"

void main()

{
	int i,x,y,z = 1;					//x,y爲x^y,z爲最後三位數
	printf("請輸入兩個數:\n");
	scanf(" %d%d",&x,&y);					//輸入底數和冪數
	for (i = 1;i <= y;i++)					//底數每乘一次就取其後三位數
	{
		z = z*x % 1000;
	}
	if (z > 100)
	{
		printf("最後三位數爲:%d\n",z);
	}
	else if(z < 10)
	{
		printf("最後三位數爲:00%d\n",z);
	}
	else
	{
		printf("最後三位數爲:0%d\n",z);
	}
}

運行結果如圖:




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章