1樓:帳號已登出
不要先把總結果求出來再取最後一個數字
因為最後一個數字肯定有數字的個位數決定
比如13^13,就求3*13,但是每次記錄最後一個數字
3×3=9 9
9×3=27 7
7×3=21 1
1×3=3 3
3×3 9
然後就可以看出是個最後結果處於每4次一個迴圈
因為13x13x13...x13總共有12個乘號,所以12%4=0所以結果是3
再舉一個例子77^77,就求7^77
7×7=49 9
9×7=63 3
3×7=21 1
1×7=7 7
7×7=49 9
所以4次一迴圈
77x77x77..x77中有76個乘號,所以76%4=0,所以取迴圈的第四個數,答案是7
再舉一個列子98×98,就求8^98
8×8=64 4
4×8=32 2
2×8=16 6
6×8=48 8
8×8=64 4
出現迴圈,4次一迴圈
98×98....×98中有97個乘號,97%4=1,取第1個數,所以結果為4
以下就是我自己編寫的程式,程式中有詳細的說明,你根據我舉例好好想一下,如果再不懂,繼續問
#include
int main()
aresult=m*aresult%10;
if(aresult==a[0])
break;
a[aflag++]=aresult;
}//end i for
if((n-1)%aflag==0)
printf("%d\n",a[aflag-1]);
else
printf("%d\n",a[(n-1)%aflag-1]);
return 0;}
2樓:
首先,對於任意數n,其可以表示為m*10+n1,其中m及n1都為整數且0<=n1<=9,則有n^n=(m*10+n1)^n=求和(i=0, n)*c(i,n)*(m*10)^(n-i)*n1^n,對於i=1...n的項,其值模10均為0,故n^n的最後一位僅與n1有關,問題簡化為n1^n%10。
又知對於0<=n1<=9,n1^m(m是正整數)其末位存在迴圈特徵,如下:
0 : 0,迴圈長度為1
1 : 1,迴圈長度為1
2 : 2 4 8 6,迴圈長度為4
3 : 3 9 7 1,迴圈長度為4
4 : 4 6,迴圈長度為2
5 : 5,迴圈長度為1
6 : 6,迴圈長度為1
7 : 7 9 3 1,迴圈長度為4
8 : 8 4 2 6,迴圈長度為4
9 : 9 1,迴圈長度為2
然後由以上特徵去解題,應該不會再超時了。
3樓:月影低徊
我覺得你不妨可以總結一下各位為0~9的數的k次方的各位數的規律.都是有章可循的.然後直接由這個規律根據輸入的數字做一些簡單的判斷即可.
時間有點晚了.不寫程式了.不過這思路應該是可行的.
比如說個位為0的結果是0
個位為1的結果是1
各位為2的結果應該是2,4,8,6,2,4,8,6如此一直迴圈下去以此類推
很簡單的C語言初級題,幫忙,一個很簡單的C語言初級題,幫忙
這是一個函式遞迴呼叫與返回的問題 程式分析如下 fun 20 if 10 0 fun 8 20 2 10 20 2 2 8 if 4 0 fun 2 8 2 4 8 2 2 2 if 1 0 fun 1 2 2 1 2 2 2 1 if 1 2 0 printf 1 printf 2 printf ...
很簡單的英語問題一個很簡單的英語問題
no he isn t 對bai,他不是一個學生 du zhiyes,he is 不,他是一個學生 要對事實回答 回答反dao意疑問句專和回答一般疑問句一樣,肯定屬回答用 yes,肯定結構 否定回答用 no,否定結構 但是翻譯過來意思不和一般疑問的回答一樣。這與漢語習慣有所不同。例如 1 isn t...
很簡單的物理問題,一個很簡單的物理問題
你說的不對 我開始學的時候也曾迷惑,首先是圓周運動需要向心力,這時候重力提供向心力,所以對軌道沒有沒有壓力 重力本來的作用是向下的,使物體下落,但是提供了向心力所以就對軌道沒有壓力了 不知道我說的你明白沒有?加速度有兩種 一種改變大小,是為切向加速度,另一種改變方向,是為法向加速度。斜面為前者,圓周...