洛谷 P1134 USACO3 2 階乘問題

2022-09-20 23:03:10 字數 586 閱讀 7879

也就是字面上的意思,求出n!階乘的最右邊的非零位的值。

用模擬加數論的方法,因為想要在末尾出現乙個0,那麼就一定會是10的倍數,而10=2*5,所以只要看1~n**現5的次數即可,因為2的倍數的數量一定是比5的倍數的數量多的。然後在循換中每次mod10求個位數,因為任何正整數相乘的個位數只與它們的個位數有關。

#includeusing

namespace

std;

intn;

intk;

intmain()

//記錄5的倍數出現的次數(指的是這個數有多少個5相乘)

}

int sum=1

;

for(int i=1;i<=n;++i)

//將2的倍數找到除以2,減少次數

while(p%5==0

) p/=5

; sum*=p;

sum%=10;//

每次%10找個位數

} printf(

"%d\n

",sum);

return0;

}

P1134 USACO3 2 階乘問題

注意理解 今天做pta也遇到了乙個類似的題目,不過那個題目是讓求非0後k位。這裡,我們先把有可能乘出來10的質因子2和質因子5全部除掉,然後就可以放心大膽的取模啦,最後由於質因子2被多除了,再乘回來就好啦。include include include include include define ...

洛谷 P1134 階乘問題

題目概述 給出n,求n 最右邊第一位的非0數。解題思路 對於乙個數的階乘,末尾的0只會以2 5的形式產生。而1到n中因數2的數量遠遠大於5,因此我們可以通過找因數5的方式來濾掉末尾的0 這裡還有另乙個規律 除去0 和1 本題的答案只可能是2,4,6,8。這4個數乘上末位是6的數,結果還是自己,因此可...

洛谷 P1605 迷宮 USACO

1.problem description 迷宮 問題描述 給定乙個n m方格的迷宮,迷宮裡有t處障礙,障礙處不可通過。給定起點座標和 終點座標,問 每個方格最多經過1次,有多少種從起點座標到終點座標的方案。在迷宮 中移動有上下左右四種方式,每次只能移動乙個方格。資料保證起點上沒有障礙。輸入樣例 輸...