备战蓝桥杯Day34 - 每日一题

题目描述

 解题思路

1.输入数据n,并将字符串类型转换成整数类型

2.求出输入n是2的几次幂(调用math库中的求对数的方法),在下面的循环中要用到

3.定义sum和,将抽取到的牌的总数加起来存储

4.count =0 # 记录 2 的第几次幂

5。通过循环,计算所有抽取到的牌数的总和,并得出抽到第几轮了,将输入数值减去已经加和的数值。

6.对所有的情况进行判断,并输出谁是最后抽牌的,谁就是最后的赢家。

代码实现

import math
n = int(input())  # 输入数据
num = round(math.log2(n))  # 求出输入n是2的几次幂,在下面的循环中要用到
sum = 0   # 定义sum和,将抽取到的牌的总数加起来存储
count =0  # 记录 2 的第几次幂

for exp in range(num):  # 循环输入数据n有的几个2次幂
    i = 2 ** exp  # 计算二次幂 1.2.4.8.16...
    sum += i  # 将所有的数据加和 就是 1+2+4+8+16+...
    count += 1
    res = n - sum  # 计算输入数据n减去所有2次幂的和,剩下的数值
# print(sum)
# print(count)  # 这些都是中间打印出来查看结果方便写出后续代码的
# print(res)
# print(count % 2)
if res <= 0 and count % 2 == 0:   # 剩下的这些就是情况列举,你自己算算应该可以看懂
    print('hua')
elif res <= 0 and count % 2 == 1:
    print('ming')
elif res > 0 and count % 2 == 0:
    print('ming')
else:
    print('hua')

总结

是我自己思考想出来的,算法的时间复杂度和解法可能不是最优的,这个题目也算是比较简单的,我最近做蓝桥杯的真题真的有点做不动了,都好难,感觉到最后都是数学问题,你需要根据给出的条件和给出的数据自己提取出数学模型来,对于我这种数学不好的人真的是非常不友好啊啊~但是我看了很多人说其实多刷题多总结题型会有帮助,我还是练习不够,需要再多加思考!多加练习!

相关推荐

  1. 每日道算法day-two(备战

    2024-03-23 06:56:01       64 阅读
  2. 备战每日

    2024-03-23 06:56:01       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 06:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 06:56:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 06:56:01       82 阅读
  4. Python语言-面向对象

    2024-03-23 06:56:01       91 阅读

热门阅读

  1. Elasticsearch 的 scroll API

    2024-03-23 06:56:01       36 阅读
  2. nju cs上机

    2024-03-23 06:56:01       43 阅读
  3. 路漫漫其修远兮,吾将上下而求索

    2024-03-23 06:56:01       44 阅读
  4. 十一.matplotlib可视化

    2024-03-23 06:56:01       38 阅读
  5. 正则表达式

    2024-03-23 06:56:01       34 阅读
  6. opencv模板匹配

    2024-03-23 06:56:01       45 阅读
  7. 从HTTP到QUIC:网络协议的演进与优化

    2024-03-23 06:56:01       43 阅读
  8. Ubuntu 上安装和配置 MinIO

    2024-03-23 06:56:01       42 阅读
  9. ChatGPT提示词大全:解锁AI对话

    2024-03-23 06:56:01       58 阅读
  10. Transformer模型

    2024-03-23 06:56:01       45 阅读