2012-11-19 46 views
2

現在我實際上閱讀了模塊化算術,並設法得到某個數字的最後一個數字。好的。但現在...我如何得到第二位數字?第二個在右邊。我實際上一直在努力尋找一個簡單的解決方案几個小時,這是迄今爲止最好的,但它仍然不是它。請有人幫助我嗎?從一個巨大的數字右邊的第二個數字

這是我迄今爲止

long long powmod(long long n, long long exp) 
{ 
    long long r, result = 1; 

    while(exp) 
    { 
     r = exp % 2; 
     exp /= 2; 
     if(r == 1) result = result * n % 10; 
     n = (n * n) % 10; 
    } 
    return result; 
} 

在此先感謝

+3

如果你知道如何得到右手數字,然後給出一個像1234這樣的數字,你會得到123,你已經知道如何得到右手數字? –

回答

1

正如你只問第二位數字,如何獲得最後兩位數字,然後除以十?

即,解決一個^ n模100,然後看十位數。

+0

謝謝!最簡單的解決方案並不總是那麼明顯:P – ImQ009

3

把它由十位,四捨五入,然後得到一個什麼樣保持最後一位。 :-)

+0

by「it」,你是指'n^exp'的結果,使用普通的非模冪運算嗎?只要結果符合「long long」的範圍,這種方法就行得通,但如果OP要求「2^1000」的第二個數字呢? – Kevin

+0

是的,這是問題出在哪裏,我知道我可以將它分成十份,但它不會對大數字起作用 – ImQ009

相關問題