首页 > 试题广场 >

杨辉三角

[编程题]杨辉三角
  • 热度指数:10953 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}杨辉三角形,又称帕斯卡三角形,第 i+1 行是二项式展开 (a+b)^i 的系数。
\hspace{15pt}三角形中任意元素等于上一行同列元素与上一行前一列元素之和。
\hspace{15pt}下面给出杨辉三角形的前 4 行:

\begin{matrix}<br />1\\<br />1 & 1\\<br />1 & 2 & 1\\<br />1 & 3 & 3 & 1<br />\end{matrix}

\hspace{15pt}给定正整数 n,请输出杨辉三角形的前 n 行。

输入描述:
\hspace{15pt}在一行输入一个整数 n \left(1 \leqq n \leqq 34\right)


输出描述:
\hspace{15pt}输出杨辉三角形的前 n 行。每一行从该行第一个元素开始,依次输出;每两个数之间用一个空格分隔。请不要在行末输出多余的空格。
示例1

输入

4

输出

1
1 1
1 2 1
1 3 3 1

说明

n=4 时,杨辉三角形的前 4 行如上所示。
示例2

输入

1

输出

1

说明

n=1 时,杨辉三角形只有第 1 行,元素为 1
n = int(input())
l = [[0]*(n+1) for i in range(n+1)]
for i in range(1, n+1): # 控制行
    for j in range(1,i+1): # 控制列数
        if i == 1 and j == 1:
            l[1][1] = 1
        else:
            l[i][j] = l[i-1][j] + l[i-1][j-1]
        print(l[i][j],"",  end='')
    print()
发表于 2025-12-02 15:15:48 回复(0)
n=int(input())
a=[[0 for _ in range(n)]for _ in range(n)]
for m in range(n):
    a[m][0]=1
for i in range(1,n):
    for j in range(1,i+1):
        a[i][j]=a[i-1][j]+a[i-1][j-1]
for i in range(n):
    for j in range(i+1):
        print(a[i][j],end=" ")
    print()

发表于 2025-11-21 18:36:29 回复(0)
import sys

for line in sys.stdin:
    n = int(line.strip())
    dp = [[0]*n for _ in range(n)]
    for i in range(n):
        dp[i][0]=1
    for i in range(1,n):
        for j in range(1,n):
            dp[i][j]=dp[i-1][j]+dp[i-1][j-1]
    for i in dp:
        for j in i:
            if j:
                print(j,end=" ")
        print()

发表于 2025-10-29 11:06:50 回复(0)
n=int(input())
a = [[0] * n for _ in range(n)]  
for i in range(n):
          a[i][0]=1
          a[i][i]=1
for i in range(2, n):      
    for j in range(1, i):  
        a[i][j] = a[i-1][j] + a[i-1][j-1]      
       
for i in range(n):
    for j in range(n):
        if j<=i:
            print(a[i][j], end=' ')
    print()            

发表于 2025-09-26 16:24:08 回复(0)
def pask(n):
    lastrowlist = []
    for i in range(n):
        li = [1 for _ in range(1,i+2)]
        if i >= 2:
            for j in range(1,i):
                li[j] = lastrowlist[j-1]+lastrowlist[j]
        lastrowlist = li
        print(*li)
n = int(input())
pask(n)

发表于 2025-07-17 23:07:25 回复(0)
n = int(input())
an = []

for i in range (n):
    row = [1] * (i+1)
    for j in range (1, i):
        row[j] = an[i-1][j-1] + an[i-1][j]
    an.append(row)

for row in an:
    print(*row)
发表于 2025-07-16 20:32:30 回复(0)
n = int(input())

prev_row = []
for i in range(n):
    row = [1] * (i + 1)
    for j in range(1, i):
        row[j] = prev_row[j-1] + prev_row[j]
    print(' '.join(map(str, row)))
    prev_row = row

发表于 2025-07-07 18:17:03 回复(0)

问题信息

难度:
7条回答 1001浏览

热门推荐

通过挑战的用户

查看代码
杨辉三角