牛客網機試題 N的階乘

2021-10-04 04:26:43 字數 2040 閱讀 3249

輸入乙個正整數n,輸出n的階乘

正整數n(0<=n<=1000)

輸入可能包括多組資料,對於每一組輸入資料,輸出n的階乘

4   5   15

24   120   1307674368000

#include #define n 10000

int main()

if(carry) res[++bit] = carry; //依次從當前位到最高位計算,最高位可能產生進製

% [flag] [width] [.precision] type[ ] 表示此處的內容可有可無,是可以省略的

比如 %d、%f、%c、%lf,type 就分別對應 d、f、c、lf;再如,%-9d中 type 對應 d

type 這一項必須有

就是至少占用幾個字元的位置;如:%-9d中 width 對應 9,表示輸出結果最少占用 9 個字元的寬度

當輸出結果的寬度不足 width 時,以空格補齊(如果沒有指定對齊方式,缺省會在左邊補齊空格);

當輸出結果的寬度超過 width 時,width 不再起作用,按照資料本身的寬度來輸出;

width 的用法:

#include int main()

執行結果:

234    9.800000   @chinachinachinachina

對輸出結果的說明:另外,.precision 也可以用於整數和字串,但是功能卻是相反的:

#include int main()

執行結果:

n: 000123456  123456

f: 882.92 882.9237 882.9236720000

str: abcde abcdefghi

輸出結果說明:%#x中 flag 對應 #,%-9d中 flags 對應-。下表列出了 printf() 可以用的 flag

標誌字元

含  義

--表示左對齊。如果沒有,就按照預設的對齊方式,預設一般為右對齊

+用於整數或者小數,表示輸出符號(正負號)。如果沒有,那麼只有負數才會輸出符號

空格用於整數或者小數,輸出值為正時冠以空格,為負時冠以負號

#對於八進位制(%o)和十六進製制(%x / %x)整數,# 表示在輸出時新增字首;八進位制的字首是 0,十六進製制的字首是 0x / 0x。

對於小數(%f / %e / %g),# 表示強迫輸出小數點。如果沒有小數部分,預設是不輸出小數點的,加上 # 以後,即使沒有小數部分也會帶上小數點。

#include int main()

執行結果:

m=       192, m=192      

m=+192, n=-943

m= 192, n=-943

f=84, f=84.

牛客網機試題 完數vs盈數

乙個數如果恰好等於它的各因子 該數本身除外 子和,如 6 3 2 1。則稱其為 完數 若因子之和大於該數,則稱其為 盈數 求出2到60之間所有 完數 和 盈數 題目沒有任何輸入。輸出2到60之間所有 完數 和 盈數 並以如下形式輸出 e e1 e2 e3 ei為完數 g g1 g2 g3 gi為盈數...

牛客網機試題 KY25 剩下的樹

有乙個長度為整數l 1 l 10000 的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個整數座標點有一棵樹,即在0,1,2,l共l 1個位置上有l 1棵樹。現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從100到200之間 包括端點 所有的樹。可能有m ...

牛客網機試題 最短路徑(並查集)

n個城市,標號從0到n 1,m條道路,第k條道路 k從0開始 的長度為2 k,求編號為0的城市到其他城市的最短距離 第一行兩個正整數n 2 n 100 m m 500 表示有n個城市,m條道路 接下來m行兩個整數,表示相連的兩個城市的編號n 1行,表示0號城市到其他城市的最短路,如果無法到達,輸出 ...