首页 > 试题广场 >

杨辉三角代码编写

[编程题]杨辉三角代码编写
  • 热度指数:352 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。
                       1 
                      1 1 
                    1 2 1 
                   1 3 3 1 
                 1 4 6 4 1 
              1 5 10 10 5 1 
           1 6 15 20 15 6 1 
        1 7 21 35 35 21 7 1 
     1 8 28 56 70 56 28 8 1 
1 9 36 84 126 126 84 36 9 1
观察这个排列,发现其中的规律,编写代码,实现打印其中任意一行

输入描述:
输入想要打印的行号n,例如:5



输出描述:
只要打印该行的内容即可,不用打印头尾的空格例如:1 4 6 4 1 
示例1

输入

1

输出

1
示例2

输入

5

输出

1 4 6 4 1
def triangles(x,y):
    if y == 1 or y == x:
        return 1
    else:
        z=triangles(x-1,y-1)+triangles(x-1,y)
        return z


if __name__ == '__main__':
    row_number=int(input())
    for j in range(1, row_number + 1):
        print(triangles(row_number, j), end="")
Python解法
编辑于 2025-10-25 20:18:23 回复(0)
杨辉三角还有另外一个规律:
第二行开始,由上一行前面加一个0组成的列表,去缝合(zip)上一行后面加一个0组成的列表,然后相加,得到答案,如第二行为:
第一行前面加0,为: 0 1
第一行后面加0, 为: 1 0
上下同位相加得到: 1 1
即为第二行数据
Python2代码:

def get_function(n):
    a1 = [1]
    x = []
    i = 1
    while i < n:
        for t in zip([0] + a1, a1+[0]):
            x.append(sum(t))
        a1 = x
        x = []
        i += 1
    return a1

n = int(input())
res = get_function(n)
print ' '.join(list(map(str, res)))



发表于 2022-02-25 01:33:04 回复(0)