北化oj平台 2524 好大的數

2021-07-10 13:47:23 字數 1069 閱讀 2690

題目描述

求n的t次冪的最後一位(n>0,n<1000000,t>=0,t<1000000);

輸入

輸入n,t(多樣例)

輸出

輸出n的t次冪的最後一位。

樣例輸入

5 3

2 3

10 5

樣例輸出

5 8

0提示

**

wk題解

方法一:

普通窮舉法,邊乘邊模,迴圈t次,即求得n的t次方

#include

int main()

printf("%d\n",ans);

}return

0;}

最開始的時候我用的這個方法,但是n和t都用的long long型的,提交之後一直是時間超限,過不了(再也不這麼手殘了,哭死在牆角。。。)

方法二:

優化演算法,通過減少迴圈次數來減少程式耗時。

分析取模問題,任何數模10所得的餘數均在0-9之間,且模10運算的結果呈週期性迴圈,所以只需開長度為10的陣列,來記錄所得餘數是否出現,以及出現在第幾次乘法。

若出現該餘數,則flag陣列記錄出現該餘數的x的階數,vis陣列置1。

#include

#include

int main()

if(t==0)

flag[1]=n%10;

ans=n%10;

for(i=2;i<10;i++)

else

}if(i==2)

i=3;

tem=t%(i-2);

if(tem==0)

tem=(i-2);

printf("%d\n",flag[tem]);

}return

0;}

(北化OJ)線性表壓縮

將乙個含有零元的線性表中的零元刪除,其他非零元的相對順序不變,稱為線性表的壓縮。每乙個非零元壓縮後的新下標與原下標之差乘以元素值稱為壓縮代價。編寫程式對線性表進行壓縮,並計算所有非零元的壓縮代價的總和。輸入的第一行為測試用例數m,0 m 100。從第二行開始,每行為乙個測試用例。每個測試用例為一組空...

北郵OJ上的題目 1497

新編碼 submit 425 accepted 224 time limit 1000ms memory limit 65535k description wangkun不喜歡背單詞,所以發明了一種新的背單詞方法,就是把每個單詞轉化乙個數字,這樣記住數字就可了。轉化單詞的規則是這樣的。假設每個單詞只...

北化oj 2104 程式改錯 字元轉換為數字

時間限制 1 sec 記憶體限制 128 mb 題目描述 題目 九進製轉換,將輸入的九進製數字轉換成16進製制輸出。輸入 若干用空格隔開的數字字串,字串只由0 8數字構成,長度不大於10 輸出 對每個數字字串輸出乙個十六進製制數,每個一行,需輸出字首0x,十六進製制中的abcdefg用大寫格式。如下...