c++/c#金字塔方案如何制作

本文关键字:何制作 方案 金字塔 c++ | 更新日期: 2023-09-27 17:59:59

我正在为金字塔方案寻找c++或c#代码(I级:x,第二级x…等等)。thx

c++/c#金字塔方案如何制作

以下是一些伪代码,您可以将其翻译成您选择的任何命令式语言:

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的数学错误。见鬼,我希望我刚才没做!