問題描述
乙個整數n的階乘可以寫成n!,它表示從1到n這n個整數的乘積。階乘的增長速度非常快,例如,13!就已經比較大了,已經無法存放在乙個整型變數中;而35!就更大了,它已經無法存放在乙個浮點型變數中。因此,當n比較大時,去計算n!是非常困難的。幸運的是,在本題中,我們的任務不是去計算n!,而是去計算n!最右邊的那個非0的數字是多少。例如,5! = 1*2*3*4*5 = 120,因此5!最右邊的那個非0的數字是2。再如:7! = 5040,因此7!最右邊的那個非0的數字是4。請編寫乙個程式,輸入乙個整數n(n<=100),然後輸出n! 最右邊的那個非0的數字是多少。
輸入格式:輸入只有乙個整數n。
輸出格式:輸出只有乙個整數,即n! 最右邊的那個非0的數字。
輸入輸出樣例
樣例輸入
6
樣例輸出
2
分析:1.取出每個數字因子2和5的個數,把剩餘的數字乘積去最後以為迴圈此操作
2.最後根據2和5因子的個數判斷非0的結尾~
#include #include using namespace std;
int main()
while(t % 5 == 0)
ans = ans * t % 10;
}if(cnt2 >= cnt5) ans *= pow(2,cnt2-cnt5);
else ans *= pow(5,cnt5-cnt2);
cout << ans % 10 << endl;
return 0;
}
(藍橋杯)演算法訓練 階乘
問題描述 乙個整數n的階乘可以寫成n 它表示從1到n這n個整數的乘積。階乘的增長速度非常快,例如,13 就已經比較大了,已經無法存放在乙個整型變數中 而35 就更大了,它已經無法存放在乙個浮點型變數中。因此,當n比較大時,去計算n 是非常困難的。幸運的是,在本題中,我們的任務不是去計算n 而是去計算...
藍橋杯 演算法訓練 階乘
問題描述 乙個整數n的階乘可以寫成n 它表示從1到n這n個整數的乘積。階乘的增長速度非常快,例如,13 就已經比較大了,已經無法存放在乙個整型變數中 而35 就更大了,它已經無法存放在乙個浮點型變數中。因此,當n比較大時,去計算n 是非常困難的。幸運的是,在本題中,我們的任務不是去計算n 而是去計算...
藍橋杯 演算法訓練 階乘末尾
資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定n和len,輸出n 末尾len位。輸入格式 一行兩個正整數n和len。輸出格式 一行乙個字串,表示答案。長度不足用前置零補全。樣例輸入 6 5樣例輸出 00720 資料規模和約定 n 30,len 10。思路 輸入正整數n和le...