小羊爱吃小草 发表于 2023-12-23 19:36:05

数字塔

   输入一个数字,输出一个金字塔

例如输入3:


输出


      1
   121
   12321

输入的数字a不大于9

FishC 发表于 2023-12-23 19:36:19

要输出金字塔,可以按行逐个打印数字。每一行的数字由前一行的数字变化而来。

首先,我们需要计算每一行的数字个数。第一行只有一个数字,第二行有三个数字,第三行有五个数字,以此类推。所以,第n行的数字个数应该是 2n-1。

接下来,我们需要确定每一行的数字是如何变化的。第一行的数字为1,这个比较简单。对于后面的行,我们可以看出数字是先递增到中间值,然后递减回去。例如,第二行的数字是从1开始递增到2,然后再递减回到1;第三行的数字是从1开始递增到3,然后再递减回到1。所以,我们可以使用两个循环,分别用来递增和递减数字。

根据上述思路,我们可以编写如下的代码:

def print_pyramid(num):
    # 计算每一行的数字个数
    digit_count = num * 2 - 1

    for i in range(1, num + 1):# 控制行数
      row = ''
      for j in range(1, i + 1):# 递增部分
            row += str(j)
      for k in range(i - 1, 0, -1):# 递减部分
            row += str(k)
      
      # 输出当前行
      print(row.center(digit_count))

# 测试代码
num = int(input("请输入金字塔的层数:"))
print_pyramid(num)

在上面的代码中,我们使用了两个循环来控制数字的递增和递减。其中,第一个循环控制行数,第二个循环用来递增数字,而第三个循环则用来递减数字。最后,我们使用字符串的`center`方法来使每一行的数字居中显示。

希望能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 数字塔