我正在寻找一个金字塔计划的c++或c#代码(一级: x,第二级x x...and等)。thx
发布于 2011-06-23 16:22:51
下面是一些伪代码,您可以将它们转换为您选择的任何命令式语言:
for each i from 1 to max
for each k from 1 to i
print x
newline发布于 2011-06-23 16:45:57
听起来你想把它格式化一点。这听起来也像是一所高中,学期初的作业,你可能是在欺骗自己,不管你在使用什么语言。但是假设你不是,你想要格式化。
FredOverflow为打印提供了正确的伪代码算法:
x
xx
xxx
...但是如果你想让它居中,那么你需要考虑首先添加多少空格。
如果你的金字塔有n高,那么底部就是n宽。行n-1包含n-1个x,但需要均匀的间距,并且不能只在两边添加0.5个空格,至少对于文本是如此(除非这是在图形用户界面中,并且您正在使用某种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差的数学错误。见鬼,我希望我刚才没有做一个!
https://stackoverflow.com/questions/6450976
复制相似问题