c++/c#金字塔方案如何制作
本文关键字:何制作 方案 金字塔 c++ | 更新日期: 2023-09-27 17:59:59
我正在为金字塔方案寻找c++或c#代码(I级:x,第二级x…等等)。thx
以下是一些伪代码,您可以将其翻译成您选择的任何命令式语言:
for each i from 1 to max
for each k from 1 to i
print x
newline
听起来你想要格式化一下。这听起来也像是一个高中的学期初作业,你可能在欺骗自己,不去发现你正在使用的任何语言。但假设你不是,你想要格式化。
FredOverflow为打印提供了正确的伪代码算法:
x
xx
xxx
...
但如果你想让它居中,那么你需要考虑先添加多少空间。
如果你的金字塔是n高,那么底部是n宽。第n-1行包含n-1个x,但需要均匀的间距,并且您不能只在每一侧添加0.5个空格,至少在文本中是这样(除非这是在GUI中,并且您正在使用某种DrawText(x,y,text)方法)。相反,考虑一下,如果你在每个x之间放一个空格,你会在一行上总是有奇数个字符,允许金字塔间距,比如:
x
x x
x x x
这样你就可以做到:
for (i = 1; i<= n; i++) {
for (j = 0; j < n-i; j++) {
printf(" ");
}
for (k = 0; k < i; i++) {
printf("x ");
}
printf("'n");
}
或者重写以满足您的需求/提高效率。这里有一些选择,你应该试着用另一种方式来做,看看这些差异教会了你什么。不过,特别要注意递归循环中使用的数学方法。很容易,尤其是在刚开始的时候,在循环中出现偏离1的数学错误。见鬼,我希望我刚才没做!