下面的图形是著名的杨辉三角形:

如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4,·······

给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?

输入描述

输入一个整数 N。

输出描述

输出一个整数代表答案。

输入输出样例

示例 1

输入

6

输出

13

上图并不是我们喜欢的杨辉三角形式,让我们再进行一步转换:

第 0列 第 1 列 第 2 列 第 3 列 第 4 列 第 5列
第 0 行 1
第 1 行 1 1
第 2 行 1 2 1
第 3 行 1 3 3 1
第 4行 1 4 6 4 1
第 5 行 1 5 10 10 5 1

我们知道杨辉三角的第 i行第 j列的值为 

用黄色印记标记的数字为我们需要考虑的部分(图一的左侧部分),我们称其为有效部分。

那么不难发现,对于每一列(比如第 i列),它们的有效部分都是从 始的。

而显然,对于同一行,列数越大则对应的数值也越大;对于同一列来说行数越大则数值也越大。也就是说如果某一行的某一列的值为 X,那么在列数不变的情况下,无论行数怎么变大都不会再出现比 X小的数了;同理在行数不变的情况下列数怎么变大也不会再出现比 X小的数了。

于是我们可得,当时,有效列数为第 0∼16 列 (因为第 17列的有效部分是开始的,所以该列无论如何都不可能出现 n了,其它的列就就更不可能了)。

import sys
n=int(input())
def C(a,b):res=1i=aj=1while j<=b:res=int(res*i/j)i-=1j+=1return res
#计算出C(32,16)=601080390,C(34,17)=2333606220
#用二分法从后往前搜索
for k in range(16, -1, -1):l = 2 * kr = max(n, l)res = int(-1)while l <= r:mid = l + r >> 1if C(mid, k) > n:r = mid - 1if C(mid,k)<n:l = mid + 1if C(mid,k)==n:res=midprint((res + 1) * res // 2 + k + 1)sys.exit()

蓝桥杯省赛 2021 杨辉三角形 python相关推荐

  1. 【蓝桥杯Python组】2022年第十三届蓝桥杯省赛B组Python解题思路详解

    第十三届蓝桥杯省赛B组Python解题思路详解 因为今年采用线上的举办方式进行比赛,所以组委会对题目做了一定的调整,将原来的5道填空+5道编程题变成了2道填空+8道编程题,据说是为了防止抄袭.其实题目 ...

  2. 2018年第九届C/C++ A组蓝桥杯省赛真题(python)

    2018年第九届C/C++ A组蓝桥杯省赛真题 第一题:哪天返回 题目描述 小明被不明势力劫持.后莫名其妙被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文. 他 ...

  3. 2022第十三届蓝桥杯省赛B组Python

    本来蓝桥杯是 5 道填空题,5 道编程题,但是这一届突然变成了 2 道填空题和 8 道编程题 文章目录 试题 A: 排列字母 试题 B: 寻找整数 试题 C: 纸张尺寸 试题 D: 数位排序 试题 E ...

  4. 2021年第十二届蓝桥杯省赛第二场Python组(真题+解析+代码):双阶乘

    1 真题 2 解析 难度系数:⭐ 考察题型:数论 涉及知识点: 双阶乘 思路分析: 啊这,竟然遇到了小学数学题:找规律.老铁,拿捏了! 规律:后一项都比前一项少个2,2021!!=2021*2019* ...

  5. 竞赛——【蓝桥杯】2022年11月第十四届蓝桥杯模拟赛第一期Python

    1.二进制位数 问题描述 十进制整数 2 在十进制中是 1 位数,在二进制中对应 10 ,是 2 位数. 十进制整数 22 在十进制中是 2 位数,在二进制中对应 10110 ,是 5 位数. 请问十 ...

  6. 2022年第十三届蓝桥杯省赛B组python 试题F:消除游戏

    文章目录 题目 完整代码及注释 题目 完整代码及注释 s = list('sdfhhhhcvhhxcxnnnnshh') # 读入数据 pre = s f = False for i in range ...

  7. 2018年第九届C/C++ A组蓝桥杯省赛真题 python解法

    第一题:哪天返回 题目描述 小明被不明势力劫持.后莫名其妙被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文. 他决定在x星战打工.好心的老板答应包食宿,第1天给 ...

  8. 蓝桥杯青少创意编程python组

    第十二届蓝桥杯青少年组国赛C++中级组 第1题 -- 第3题(python3实现) 第十二届蓝桥杯青少年组国赛C++中级组 第1题 -- 第3题(python3实现)_dllglvzhenfeng的博 ...

  9. 2021年软件类第十二届蓝桥杯 省赛 python组 F-J题解

    2021年软件类第十二届蓝桥杯 省赛 python组 F-J题解 文章目录 2021年软件类第十二届蓝桥杯 省赛 python组 F-J题解 试题 F:时间显示 题目描述 输入描述 输出描述 输入输出 ...

  10. 【蓝桥杯真题】2021年蓝桥杯省赛A组题目解析+代码(python组)

    2021年蓝桥杯省赛A组题解(python组) 来自微信公众号:算法梦工厂,二维码见文末. 欢迎加入蓝桥杯备赛群:768245918,获取往届试题,测试数据,算法课程等相关资源. A:卡片 答案:31 ...

最新文章

  1. php正则判断不规范字符串,php学习_第9章_字符串处理与正则表达式
  2. 奇异值的物理意义是什么?强大的矩阵奇异值分解(SVD)及其应用
  3. 【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )
  4. base--AuditResult
  5. 将给出的整数x翻转_每日一题:1.罗马数字转整数
  6. python-迭代器
  7. mysql主从同步面试题_面试被问MySQL 主从复制,怎么破?
  8. 移动硬盘无法休眠了?
  9. 记一次 AXI -id debug
  10. Rust : 闭包、move 与自由变量的穿越
  11. Struts2框架的概念及使用方法
  12. 在xp IIS上搭建动易论坛注意事项
  13. Docker 学习笔记 -- kuangshen Docker 视频学习笔记
  14. SQLite的主键外键
  15. MPQ 文件系统完成
  16. 关于Python、R、VBA、SAS的生成批量变量名与动态变量引用的问题
  17. WPF无边框窗体拖动
  18. Java打印折纸游戏
  19. 退出计算机控制如何恢复,在您退出大势至U盘禁用软件、电脑U口屏蔽软件之后如何取消U盘写保护功能、恢复向U盘复制文件的功能?...
  20. 2014 ACM亚洲区域赛 - 北京现场赛

热门文章

  1. 高等数学(第七版)同济大学 习题1-4 个人解答
  2. VSCode配置vue用户代码片段Snippets
  3. 视频联网云平台EasyCVR集成海康EHome协议系列——配置及协议介绍
  4. linux vi带 替换,vim替换命令_Linux vi/vim替换命令使用集锦
  5. html5验证码制作,Html5生成验证码的示例代码
  6. 阿里巴巴矢量图标 iconfont 下载图标分辨率小一点、并占得内存小一点呢
  7. 人工智能导论(专家系统)
  8. 【MATLAB教程案例11~20总结】优化类算法matlab仿真经验和技巧总结
  9. 常用命令之svnadmin命令
  10. mysql忘记密码怎样重置