AMCUL 2021-11-17 12:59 采纳率: 0%
浏览 156
已结题

Python 杨辉三角形【第十二届蓝桥杯】【省赛】【B组】试题,运行超时,请问应该怎么改?

问题描述:

下面的图形是著名的杨辉三角形:
如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列:1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, …
给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?
【输入格式】
输入一个整数 N。
【输出格式】
输出一个整数代表答案。
【样例输入】
  6
【样例输出】
  13
【评测用例规模与约定】
  对于 20% 的评测用例,1 ≤ N ≤ 10;
  对于所有评测用例,1 ≤ N ≤ 1000000000。

错误代码如下:

n = int(input())
m= 2 * n#保证数字有输出结果,如5的输出为17
list2 = [i for i in range(m * m)]#一个含有n的平方个数据的数组
k = 0
list1 = [[0] * m for i in range(m)]#m*m型初值为0的二维数组
# 求杨辉三角----------------
for i in range(m):
    for j in range(m):
        if j == 0 and j==i:
            list1[i][j] = 1
        else:
            list1[i][j] = list1[i - 1][j - 1] + list1[i - 1][j]
        # -------------------------------
        if list1[i][j] != 0:#去除初值为0的
            list2[k] = list1[i][j]#将二维化为一维
            k = k + 1#一维数组的下标
print(list2.index(n) + 1)

运行结果图:

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月25日
    • 创建了问题 11月17日

    悬赏问题

    • ¥15 matlab中使用gurobi时报错
    • ¥15 WPF 大屏看板表格背景图片设置
    • ¥15 这个主板怎么能扩出一两个sata口
    • ¥15 不是,这到底错哪儿了😭
    • ¥15 2020长安杯与连接网探
    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
    • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
    • ¥16 mybatis的代理对象无法通过@Autowired装填
    • ¥15 可见光定位matlab仿真
    • ¥15 arduino 四自由度机械臂