#27087: C/C++補零


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
a248. 新手訓練 ~ 陣列應用 -- 新手訓練系列 ~ 2 | From: [27.52.102.84] | 發表日期 : 2021-09-12 15:34

如果輸出時位數較少,需要補零的話,C或C++不需要手動輸出0,可以用內建的方式。

1. printf

一般輸出int或是long long int時,會用printf("%d",n)或printf("%d",n)這樣的方式,如果要前面補零,可以在%後面加上0和總位數,例如輸出九位數可以用printf("%09lld",a/b)。如果位數是變數,可以用printf("%0*lld",n,a/b)。(n代表位數)。

2. cout

cout看起來沒那麼複雜,可以用setfill設定位數不足時前面要補的字元,setw設定位數。例如輸出九位數前面補零可以用cout<<setfill('0')<<setw(9)<<a/b。

 

P.S. 我看排行榜很多人都很快,嘗試了一些方式加速,最快只有90ms。後來我找到討論區2017年時有人分享48ms程式碼,直接複製貼上送出,結果0.1s,看來Zerojudge速度只剩一半?

 
ZeroJudge Forum