JoyOI1018 階乘統計

2021-08-22 08:22:29 字數 762 閱讀 5134

時間限制

記憶體限制

評測方式

題目**

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...