问题一描述

杨辉三角形又称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

方法一

n = int(input())li = [[0] * n for i in range(n)]  # 初始化一个n * n的矩阵for i in range(n):for j in range(n):if j == 0:li[i][j] = 1else:li[i][j] = li[i - 1][j - 1] + li[i - 1][j]if li[i][j] != 0:if i == j:print(li[i][j])else:print(li[i][j], end=' ')

方法二

n = int(input())
tri_li = []
row = 0
while True:row_li = []row += 1  # 第几行for i in range(row):if i == 0 or i == (row - 1):row_li.append(1)else:if row > 2 and i >= 1:row_li.append(tri_li[row - 2][i - 1] + tri_li[row - 2][i])tri_li.append(row_li)if row == n:breakfor elem in range(tri_li):print(elem)

问题二描述

如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下
数列:
1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, …
给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?

N = int(input())  # 给定正整数
last_line = []
row = 0
temp = 0
flag = 0
while True:row_li = []row += 1  # 第几行for i in range(row):if i == 0 or i == (row - 1):temp = 1row_li.append(temp)else:if row > 2 and i >= 1:temp = last_line[i - 1] + last_line[i]row_li.append(temp)if temp == N:print(int(0.5 * (row - 1) * (row - 1) + 0.5 * (row - 1) + i + 1))flag = 1breakif flag == 1:breaklast_line = row_li

以上代码在N特别大时,内存占用较大。

N = int(input())  # 给定正整数
last_line = []
row = 0
temp = 0
flag = 0
while True:row_li = []row += 1  # 第几行if row % 2 == 1:n = row // 2 + 1elif row % 2 == 0:n = row // 2for i in range(n):if i == 0:temp = 1row_li.append(temp)elif i >= 1:if row % 2 == 1:temp = last_line[i - 1] * 2row_li.append(temp)elif row % 2 == 0:temp = last_line[i - 1] + last_line[i]row_li.append(temp)if temp == N:print(int(0.5 * (row - 1) * (row - 1) + 0.5 * (row - 1) + i + 1))flag = 1breakif flag == 1:breaklast_line = row_li

优化代码,内存将缩小几十倍,但时间还会很长。

有其他优化方法的小伙伴在评论区讨论讨论呗!

Python杨辉三角形相关推荐

  1. Python 杨辉三角形的简单实现

    Python 杨辉三角形的简单实现 介绍: 杨辉三角 实现: # -*- coding: utf-8 -*-def triangles():L=[1]while True:yield LL = [1] ...

  2. 蓝桥杯 Python 杨辉三角形

    问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数. 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加. 下面给出了杨辉三角形的前4行: 1 1 1 1 ...

  3. python杨辉三角形10行_python杨辉三角形两种方法

    1 / \ 1 1 / \ / \ 1 2 1 / \ / \ / \ 1 3 3 1 / \ / \ / \ / \ 1 4 6 4 1 / \ / \ / \ / \ / \ 1 5 10 10 ...

  4. python杨辉三角函数_python杨辉三角输出指定行_使用python打印十行杨辉三角过程详解...

    如何用python输出杨辉三角 程序输出需要实现如下效果: [1] [1,1] [1,2,1] [1,3,3,1] .. 方法:迭代,生成器 12345678910111213141516171819 ...

  5. python杨辉三角输出指定行_python杨辉三角输出指定行_使用python打印十行杨辉三角过程详解...

    如何用python输出杨辉三角 程序输出需要实现如下效果: [1] [1,1] [1,2,1] [1,3,3,1] .. 方法:迭代,生成器 12345678910111213141516171819 ...

  6. python 蓝桥杯习题集(部分)

    python 蓝桥杯习题集(部分) python 十进制转十六进制(蓝桥杯) python 十六进制转十进制(蓝桥杯) python 区间k大数查询(蓝桥杯) python 最大最小公倍数(蓝桥杯) ...

  7. 以杨辉三角形的三种实现体会python的编程特性

    杨辉三角形因为其形式简单,又有一定的使用价值,因此是入门编程题中被用的最多的,也是很好的语言实例标的. 下面就杨辉三角形使用python的三种解法,来看看看python的编程特性. 第一种:传统编程思 ...

  8. Python打印杨辉三角形 RUNOOB python练习题61

    用来练手的python练习题,原题链接: python练习实例61 题干: 打印出杨辉三角形 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 ...

  9. 微课|中学生可以这样学Python(例6.1):杨辉三角形

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第6章  函数 6.6  精彩例题分析与解答 例6.1  杨辉三角形 京东购买链接:https:/ ...

  10. Python计算组合数生成杨辉三角形

    在杨辉三角形中,第n行第i列的数字恰好等于组合数C(n,i),其中n和i都从0开始,n=0表示第一行,i=0表示第一列. 在下面的代码中,修饰器lru_cache的作用是给函数cni增加缓存,减少重复 ...

最新文章

  1. hdu 2896:病毒侵袭
  2. centos7 systemctl配置开机自启动服务
  3. Server 2012 Hyper-v新功能之一:客户端 Hyper-V
  4. iOS中MVC设计模式
  5. Python 可执行对象
  6. Tensorflow ExponentialMovingAverage 详解
  7. “好师父”如何破解大学生就业难题
  8. 两个正数相乘为什么结果是负数
  9. ffmpeg1.2的filter分析
  10. JAVA 实现生命游戏
  11. 2021-07-31
  12. Java之编写FlyBird小游戏
  13. MOLDFLOW 2012模流分析基础到实战视频教程
  14. Caused by: javax.security.auth.login.LoginException: unable to find LoginModule class: com.ibm.secur
  15. 浅谈外网通过反向代理访问内网资源时的权限保护
  16. 【Hyperledger Fabric入门】(一) 快速运行一个简单的Fabric网络2
  17. 秒杀脚本丨Python淘宝或京东等秒杀抢购脚本实现
  18. pc控制android源码,pc 通过vnc控制android
  19. 你听播客吗?聊聊最近大火的声音经济
  20. 从一维卷积、因果卷积(Causal CNN)、扩展卷积(Dilation CNN) 到 时间卷积网络 (TCN)

热门文章

  1. 如何在dw中html字体变大,DW网页的字体大小怎么设置
  2. xbee模块和单片机_XBee与ZigBee模块区别
  3. 项目合同管理 试题分析
  4. js实现word生成书签_javascript下用ActiveXObject控件替换word书签,将内容导
  5. 中科院计算所在可信大数据软件技术方面的研究工作【DOC+PPT下载】
  6. 处理24人!又一批科研不端案例被通报批评
  7. dw网页制作的基本步骤_dreamweaver制作网页详细步骤(设计网站首页)
  8. 邮件服务器超级用户,Postfix邮件服务器的安装与配置方法
  9. raize控件的安装注意
  10. wps居中对齐不在中间_wps有时候居中对齐不是在中间