題目:
求一個整數任意次方的最後三位數,即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);
}
}
運行結果如圖: