💖作者简介:大家好,我是车神哥,府学路18号的车神🥇
⚡About—>车神:从寝室到实验室最快3分钟,最慢3分半(那半分钟其实是等红绿灯)
📝个人主页:车手只需要车和手,压力来自论文_府学路18号车神_CSDN博客
🥇 官方认证:人工智能领域优质创作者
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋⚡希望大家多多支持🤗~一起加油 😁
专栏
每天刷一道题,话不多说,先刷近两年的题吧,现在是2021年的真题了,如果有一起的可以加入我们!!!
一起来刷题,冲击国赛!!!
扫码 我的主页 网页左边下方 群二维码。
加入方式:可以在下方的微信名片加我,然后拉你入群。(记得备注暗号:我要拿国奖)
2021年第十二届蓝桥杯赛题总览
2020年的题就是这些,类型分为两种,分别是结果填空和程序设计,我们每天刷一道题,省赛没问题!
杨辉三角 (题目)
(本题总分:15分)
官方练习系统:https://www.lanqiao.cn/problems/1462/learning/
—>【问题描述】
解析
通过阅读题干,本题——难度中等:⭐⭐⭐
考察类型:数论、递归
考察知识点:递归
分析:
杨辉三角是个老题目了。
特性:
对称性
杨辉三角形左右两边数字对称相等。渐增性
越往中间数字越大,除最外层1外,越往下数字越大。组合数
杨辉三角形里面的每一个元素都能用组合数表示。第N行的第M列可以表示成C(N-1,M-1),如6在第5行的第3列,它对应的组合数就是C(5-1,3-1),即C(4,2)。
要找出第一次N出现的位置,根据对称性可知,N出现的位置必定在左边,因此只考虑左半边位置即可。因为越靠中间的数越大,所以我们可以从最中间的数,也就是从对称轴位置的数开始找。怎么找呢?斜着找。没错,就是斜着找。
下面直接开干!!!
代码
Python代码实现:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2022/3/11 16:04
# @Author : 府学路18号车神
# @Email :yurz_control@163.com
# @File : Day17.py
def C(x, y): # 计算x行y列(都是从0开始数)位置的数
z = 1
res1 = 1
res2 = 1
while (z <= y):
res1 *= x
res2 *= z
x -= 1
z += 1
return res1 // res2
n = int(input())
i = 0
flag = -1
while (i < 50000 and flag == -1): # 50000行第三个数已经大于了1000000000
for j in range(0, i + 1):
if (C(i, j) > n): # 在遍历一行时,如果已经大于n了就跳过该行遍历
break
if (C(i, j) == n):
flag = j
break
i += 1
# flag为-1时说明前50000行没找到该数,又因为第50000行的第三个数已经大于了1000000000
# 所以下面每一行的第三个数往后都大于1000000000,也就是说,如果前50000行没有找到这个数,
# 那么这个数一定会在下面行的第二个数的位置被找到,而每一行的第二个数逐行增一,
# 即数n的位置就是(n+1)*n//2+2
if (flag == -1):
print(int((n + 1) * n // 2 + 2)) # 前50000行没找到,则必定在第二列,直接找规律算位置
else:
print(int((i - 1) * i / 2 + flag + 1)) # 前50000行找到了,根据i和flag带回的j值计算出位置
由此,我们可以快速得出结果,验证完毕!
今天开刷第 十七 天,欢迎大家加入,一起变强,一起自律,一起上国赛!!!
有不同解法的可以在下面留言哦!~
往期刷题路线:
刷题路线 | Detail |
---|---|
2020年 | |
Day-01 | 门牌制作 |
Day-02 | 寻找2020 |
Day-03 | 跑步锻炼 |
Day-04 | 蛇形填数 |
Day-05 | 排序 |
Day-06 | 装饰珠 |
Day-07 | 成绩统计 |
Day-08 | 单词分析 |
Day-09 | 数字三角形 |
Day-10 | 平面切分 |
– | – |
2021年 | |
Day-11 | 卡片 |
Day-12 | 直线 |
Day-13 | 货物摆放 |
Day-14 | 路径 |
Day-15 | 回路计数 |
Day-16 | 时间显示 |
官方刷题练习系统:http://lx.lanqiao.cn/
❤坚持读Paper,坚持做笔记,坚持学习,坚持刷力扣LeetCode❤!!!
坚持刷题!!!冲击国赛
⚡To Be No.1⚡⚡哈哈哈哈
⚡创作不易⚡,过路能❤关注、收藏、点个赞❤三连就最好不过了
ღ( ´・ᴗ・` )
❤