首页 > 其他分享 >杨辉三角形

杨辉三角形

时间:2024-03-03 15:55:37浏览次数:20  
标签:triangle print range 杨辉三角 col row

杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。

它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

下面给出了杨辉三角形的前4行:

   1


  1 1


 1 2 1


1 3 3 1

给出n,输出它的前n行。

输入格式
输入包含一个数n。

输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出

1
1 1
1 2 1
1 3 3 1

先创建数组,在对第三行的第二列开始编写规则。

triangle = []
n = int(input())
for i in range(n):
    triangle.append((i + 1) * [1]) # 先生成都是1的数组

for row in range(2, n): #开始应用规则
    for col in range(1, row):
        triangle[row][col] = triangle[row - 1][col] + triangle[row - 1][col - 1]
for k in triangle:
    for j in k:
        print(j, end=' ')
    print()

不创建整个数组,我们只对每行进行处理,数组每次接受到的只有一行。

N=[1] # [1] [1,1] [1,2,1]...

for i in range(10):
    for row in N:
        print(row,end=' ')
    print()
    N.append(0) # 我们用0补齐空余的部分。
    N = [N[k]+N[k-1] for k in range(i+2)] # 应用规则 [1,2,1,0] [1,3,3,1]

标签:triangle,print,range,杨辉三角,col,row
From: https://www.cnblogs.com/codingsaveWorld/p/18050139

相关文章

  • 力扣118.杨辉三角
    题目:给定一个非负整数numRows,生成「杨辉三角」的前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。实现方法:从第三行开始,通过循环,依次求取上一行相邻两数的和,添加到结果里。funcgenerate(numRowsint)[][]int{ varr[][]int fori:=0;i<nu......
  • leedcode 杨辉三角-II
    自己写的:classSolution:defgetRow(self,rowIndex:int):#初始化一个列表以存储帕斯卡三角形的行li=[]#前两行是预定义的li.append([1])li.append([1,1])#rowIndex为0和1的基本情况ifrowIndex......
  • leedcode 杨辉三角
    自己写的:classSolution:defgenerate(self,numRows:int):#初始化结果列表,包含帕斯卡三角形的前两行li=[[1],[1,1]]#检查如果numRows为1或2,直接返回对应结果ifnumRows==1:return[[1]]ifnumRows=......
  • 杨辉三角的问题,借助二维数组的方法来解决。
    1publicclasscode1{2publicstaticvoidmain(String[]args){3int[][]x=newint[6][6];4for(inti=0;i<x.length;i++){5x[i][0]=1;6x[i][i]=1;78}9for(inti......
  • C#通过循环绘制九九乘法表以及杨辉三角形
    九九乘法表 定义两个变量intx,y;for(x=1;x<=9;x++)//循环列{for(y=1;y<=x;y++)//循环行{Console.Write("{1}*{0}={2}",x,y,x*y);//显示出每一个式子}Console.WriteLine();//在每一行换行}杨辉三角形......
  • 杨辉三角c语言
    #include<stdio.h>#defineM10#defineN10intmain(){  inta[M][N],i,j;  for(i=0;i<M;i++) {  for(j=0;j<=i;j++)                     //先取9*9列的数都赋值为一,再取其中1/2的部分  a[i][j]=1;      ......
  • [Leetcode] 0118. 杨辉三角
    118.杨辉三角题目描述给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例1:输入:numRows=5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2:输入:numRows=1输出:[[1]] 提......
  • 动态规划思想解决杨辉三角
    hli=[]n=int(input())foriinrange(n):hli.append([1])#在第一行开始时初始化列表forjinrange(1,i+1):#注意范围是1到i,因为第一行已经有1了hli[i].append(hli[i-1][j-1]+hli[i-1][j])#按照Pascal三角形的规则计算print(h......
  • 118. 杨辉三角
    给定一个非负整数numRows,生成「杨辉三角」的前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例1:输入:numRows=5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]代码classSolution{public:vector<vector<int>>generate(intnum......
  • 杨辉三角形
    1.题目例3.6打印杨辉三角形。利用队列打印杨辉三角形。杨辉三角形的图案如图3.18所示。2.算法思路3.代码////Createdbytrmbhon2023-09-12.//#include<stdio.h>#include<stdlib.h>#defineTRUE1#defineFALSE0#defineMAXSIZE50#defineQueueElementType......