也有類似的問題,但沒有人幫助我找到我正在尋找的答案,所以我來請求幫助!在C中打印列
此外,這是作業,所以我正在尋找一個解釋,而不僅僅是工作代碼。
我需要輸出兩列或四列輸出以顯示數字1-20的階乘。
我非常接近,我似乎無法弄清楚如何讓這兩個部分並排。
代碼:
lngFactorial = 1;
// Factorials 1 - 10
for (intIndex = 1; intIndex <=10; intIndex += 1)
{
lngFactorial *= intIndex;
printf("%d! = %-20lu \n", intIndex, lngFactorial);
}
// Factorials 11 - 20
for (intIndex = 11; intIndex <= 20; intIndex += 1)
{
lngFactorial *= intIndex;
printf("%20d ! = %lu \n", intIndex, lngFactorial);
}
輸出:
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11 ! = 39916800
12 ! = 479001600
13 ! = 1932053504
14 ! = 1278945280
15 ! = 2004310016
16 ! = 2004189184
17 ! = 4006445056
18 ! = 3396534272
19 ! = 109641728
20 ! = 2192834560
那麼,這4列,我需要以某種方式找出該打印
1! = 1 11! = 39961800
還是我只是失蹤在我的printf有東西嗎?
任何指導,非常感謝。
您必須同時打印第1列和第11列。 – tilz0R
'13!'不等於'1932053504' – Stargateur
@Stargateur - 看起來像整數溢出給我。 '13! == 0x17328CC00'。而'x7328CC00 == 1932053504'。 OP需要從「int」切換到「long long」來進行所有的計算,並使用'%ll'作爲格式參數而不是'%d'。 – selbie