当前位置:   article > 正文

蓝桥杯真题训练12_蓝桥u12 计算思维

蓝桥u12 计算思维

蓝桥杯真题训练

1-既约分数

如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数

sum = 0
for i in range(1,2021):
    for j in range(1,2021):
        a1 = i
        a2 = j
        while a1 != a2:
            if a1>a2 :
                a1 = a1 - a2
            else:
                a2 = a2 - a1
        if(a1==a2==1):
            sum = sum +1
print(sum)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

解题思路:这里这个题非常简单就是求最大公约数的公式方法要会。

2-空间

小蓝准备用 256MB256MB 的内存空间开一个数组,数组的每个元素都是 3232 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB256MB 的空间可以存储多少个 3232 位二进制整数?

a=(256*1024*1024*8)/32
print(int(a))
  • 1
  • 2

解题思路:记住32位二进制就是32个小bit。

3-星期一

整个 2020 世纪(19011901 年 11 月 11 日至 20002000 年 1212 月 3131 日之间),一共有多少个星期一

import datetime
a = datetime.date(1901,1,1)
b = datetime.date(2000,12,31)
d = datetime.timedelta(days=1)
sum = 0
while a<b:
  if a.weekday()==0:
    sum = sum +1
  a= a + d
print(sum)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

解题思路:利用datetime模块进行while循环找到每个星期一。

4-杨辉三角

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

n = int(input())
# 求组合数
def C(a, b):  
    res = 1
    fz = a #分子
    for fm in range(1,b+1): #1~b
        res = res * fz // fm#递推公式=分子//分母
        fz -= 1
        if res > n:
            return res
    return res

for k in range(16, -1, -1):
    l = 2 * k
    r = max(n, l)
    res = int(-1)
    while l <= r:
        mid = l + r >> 1
        if C(mid, k) >= n:
            res = mid
            r = mid - 1
        else:
            l = mid + 1
    if C(res, k) == n:
        print((res + 1) * res // 2 + k + 1)
        break
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

解题思路:主要是明白杨辉三角内的每个数其实是行列-1的组合数。然后取一半再根据对称轴元素的规律,进行二分查找。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/606550
推荐阅读
相关标签
  

闽ICP备14008679号