首页 > 试题广场 >

杨辉三角

[编程题]杨辉三角
  • 热度指数:23710 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。


输入描述:
第一行包含一个整数数n。 (1≤n≤30)


输出描述:

包含n行,为杨辉三角的前n行,每个数输出域宽为5。

示例1

输入

6

输出

    1
    1    1
    1    2    1
    1    3    3    1
    1    4    6    4    1
    1    5   10   10    5    1
n = int(input().strip())
arr = [1,1]
if n==1:
    print(f"{1:>5}")
elif n==2:
    print(f"{1:>5}{1:>5}")

else:
    print(f"{1:>5}")
    print(f"{1:>5}{1:>5}")

    for i in range(n-2):
        newarr = [1]
        for j in range(1,len(arr)):
            temp = arr[j] + arr[j-1]
            newarr.append(temp)
        newarr.append(1)
        arr = newarr
        for i in newarr:
            print(f"{i:>5}",end="")
        print()

发表于 2024-09-28 12:39:14 回复(0)
方式一
n = int(input())
a = []
for i in range(1,n+1):
    if i == 1:
        a.append([i])
    a.append([1,*[a[i-1][j-1]+a[i-1][j] for j in range(1,i)],1])
for i in a[:-1]:
    for j in i:
        print("{:>5d}".format(j),end="")
    print()
方式二
n=int(input())
a=[[0]*n for i in range(n)]

for i in range(n):
    for j in range(i+1):
        if j==0&nbs***bsp;j==i:
            a[i][j]=1
        else:
            a[i][j] = a[i-1][j-1] + a[i-1][j]

for i in a:
    for j in i:
        if j > 0:
            print("{:>5d}".format(j),end="")
    print()




发表于 2024-02-10 15:13:15 回复(0)
def yanghuisanjiao(n):
    # nums = []
    if n == 1:
        nums = [[1]]
        return nums
    else:
        numss = yanghuisanjiao(n-1)
        num = []
        for i in range(n):
           
            if i ==0 or i == n-1:
                num.append(1)
            else:
                nn = numss[n-2][i-1] +  numss[n-2][i]
                num.append(nn)
        numss.append(num)
        return numss

n = int(input())
for i in yanghuisanjiao(n):
    for j in i:
        print("%5d"%j, end='')
    print()
发表于 2023-04-13 21:50:03 回复(0)
l = [[0]*i for i in range(1, 31)]
for i in range(30):
    for j in range(i+1):
        if j == 0&nbs***bsp;i == j:
            l[i][j] = 1
        else:
            l[i][j] = l[i-1][j-1] + l[i-1][j]

n = int(input())
for i in range(n):
    for j in range(i+1):
        print('{:>5d}'.format(l[i][j]), end='')
    print()

发表于 2021-08-31 09:56:16 回复(0)