時間限制
記憶體限制
評測方式
題目**
1000ms
131072kib
標準比較器
local
太原成成中學第2次模擬賽 第一道
n的階乘定義為n!=123……n 如3!=6
n!通常最後會有很多0,如5!=120 最後有乙個0,現在統計n!去除末尾的0後,最後k位是多少
第一行包括兩個數n,k
如果n!不止k位,則輸出最後k位,如果不足k位,則將剩下的全部輸出
7!為5040,去除末尾的0為504,最後兩位為04
100%滿足1<=n<=20 1<=k<=9
輸入樣例 #1
輸出樣例 #1
7 2
04
大牛:可以直接用long long存下來,去掉0之後輸出它的最後幾位
#include#include#include#include#include#include#define inf 1000000000
#define ll long long
using namespace std;
int n,k,m;
int a[25];
ll ans=1;
int main()
for(int i=min(m,k);i>=1;i--)
printf("%d",a[i]);
return 0;
}
HDOJ 1018(階乘位數)
1.log10 num 1 2.較小數情況下,sprintf str,d num 輸出strlen str 所以不能初始化為0 自然對數 log 以二為底log2 num log num log2,因為那個自然對數的底是無理數,不好表示,只要有了自然對數的表示,其他用換底公式就ok啦 我一直想的是求...
HDU 1018 階乘位數 數學
題意是求 n 的階乘的位數。直接求 n 的階乘再求其位數是不行的,開始時思路很扯淡,想直接用乙個陣列存每個數階乘的位數,用變數 tmp 去存 n 與 n 1 的階乘的最高位的數的乘積,那麼 n 的階乘的位數就等於 n 1 的階乘的位數加 tmp 的位數再減去 1。但這種做法是不對的,例如有可能最高位...
1018 統計同成績人數
最容易想到的解法,ac include include int buf 1000 int main else scanf d temp for int i 0 iif buf i temp count printf d count printf n return 0 80 60 90602 85 6...