(数学:五边形数字)对于n = 1,2,...,五边形数定义为n(3n-1)/ 2。 。 。, 等等。因此,前几个数字是1,5,12,22,.... 。 。
编写一个测试程序,使用此方法显示前15个五边形数字,每行5个数字。
以下是我尝试的内容:
x = 0;
c = 1;
for (x=0; x < 3; x++) {
for (var y = 0; y < 5; y++, c++) {
write(c*(3*c-1)/2);
}
}
我能够打印五角形数字,但每次打印时,都会跳过一行(因此,每行打印一个数字)。我需要的是它在总共15个数字中每行打印5个数字。所以,3行)。
P.S。重要的是我必须在铅笔代码
中这样做[1]:https://i.stack.imgur.com/RnqFG.png这是我网站上代码的链接
答案 0 :(得分:0)
编写使用此方法的测试程序
您只是调用一些写入方法,而不是使用它,因此,如果任务是学习方法或编写输出,那么它并不是很清楚,但是这里有你如何格式化3行每行5个数字
n = 0;
for (var lines = 0; lines < 3; lines++) {
line = "";
for (var i = 0; i < 5; i++) {
line = line + getPentagonalNumber(n) + " ";
n++;
}
write(line);
}
答案 1 :(得分:0)
我不熟悉PencilCode,但我相信你想要的是在同一行输入来自内部for
循环的所有回复,然后然后转到新行内循环结束后 - 所以最后你将有三行输出。
我查了一下PencilCode文档here并认为你想要的是替换:
write(c*(3*c-1)/2);
使用:
type(c*(3*c-1)/2);
然后添加以下内容以在每个数字之间添加空格:
type " "
然后在内部for
循环后添加此内容以移至新行:
typeline();
所以我认为你的最终PencilCode看起来像这样:
1 x = 0;
2 c = 1;
3 for (x=0; x < 3; x++) {
4 for (var y = 0; y < 5; y++, c++) {
5 type(c*(3*c-1)/2);
6 type " ";
7 }
8 typeline();
9 }
type()
似乎只是在一行上键入,但不会将光标移动到下一行 - 它类似于Java中的System.out.print()
。
typeline()
似乎键入括号内的任何内容,然后将光标移动到下一行。在这种情况下,没有任何东西,所以它只是将光标移动到下一行 - 它类似于Java中的System.out.println()
。
Line 6
是在您要打印的每个数字之间添加一个空格。我尝试在文档here中玩,但似乎字符串连接在PencilCode中不起作用?
无论如何,我希望这能解决你的问题。