有类似的问题,但没有一个可以帮助我找到我正在寻找的答案,所以我来寻求帮助!
此外,这是作业,所以我正在寻找更多的解释,而不仅仅是工作代码。
我需要打印两列或四列输出,以显示数字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中遗漏了什么?
非常感谢任何指导。
答案 0 :(得分:5)
将列打印在一起,例如
// Using long long to allow big numbers and to prevent overflow.
unsigned long long lngFactorial1 = 1;
unsigned long long lngFactorial2 = 3628800;// 10!
for (intIndex = 1; intIndex <= 10; intIndex++) {
lngFactorial1 *= intIndex;
lngFactorial2 *= intIndex + 10;
printf("%d! = %-20llu ; %d! = %-20llu;\n", intIndex, lngFactorial1, intIndex + 10, lngFactorial2);
}
答案 1 :(得分:2)
使用换行符后,您无法返回上一行(不更改)。
如果你需要1!和11!在同一行中,它们必须打印在一行中,然后打印换行符。因此,对于特定的迭代,将打印i和(10 + i)阶乘。 (1 <<; = I&LT; = 10)。
此外,对于存储超过12的阶乘,您将需要长数据类型。
答案 2 :(得分:1)
为此你需要printf看起来像这样
printf("%d! = %-20lu "%20d ! = %lu", intIndex, lngFactorialn, (intIndex + 10), lngFactorialn);
因此您需要先计算这些,然后同时打印它们。 我认为这应该只用一个for循环来实现。
答案 3 :(得分:0)
正如其他答案所提到的,你必须同时计算每列中的相同行。这是我的解决方案,适用于各种列号:
library(leaflet)
m <- leaflet(AM_Peak) %>%
addTiles('http://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png',
attribution='Map tiles by <a href="http://stamen.com">Stamen Design</a>,
<a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> — Map data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>') %>%
setView(103.831959, 1.360270, zoom = 11) %>%
addCircles(~x_AM_Peak$Entry_Station_Long, ~x_AM_Peak$Entry_Station_Lat,
weight =x_AM_Peak$radius, radius=40,
label = ~as.character(x_AM_Peak$Entry_Station),color="#ffa500", stroke = TRUE, fillOpacity = 0.8) %>%
addPolylines(data = y_AM_Peak,
stroke = TRUE,color = "#6eff2a", weight = 0.2, opacity = 0.2,
fill = FALSE, fillOpacity = 0.1, dashArray = NULL,
smoothFactor = 1)