小刘的伴学笔记5|豆包MarsCode AI刷题

48 阅读3分钟

一、题目:比赛配对问题 思路:1. 初始化:设置一个变量 total_matches 来记录总的比赛次数,初始值为0。

  1. 循环:当队伍数 n 大于1时,进行以下操作:

    • 如果 n 是偶数,计算当前轮的比赛次数并更新 total_matches,然后将 n 更新为 n / 2
    • 如果 n 是奇数,计算当前轮的比赛次数并更新 total_matches,然后将 n 更新为 (n - 1) / 2 + 1
  2. 返回结果:当 n 变为1时,返回 total_matches

关键点

  • 理解每轮比赛后队伍数的更新规则。
  • 确保每轮比赛次数正确累加到 total_matches 代码: def solution(n: int) -> int: total_matches = 0 while n > 1: if n % 2 == 0: # 偶数队伍数 total_matches += n // 2 n = n // 2 else: # 奇数队伍数 total_matches += (n - 1) // 2 n = (n - 1) // 2 + 1 return total_matches

if name == 'main': print(solution(7) == 6) print(solution(14) == 13) print(solution(1) == 0) 知识总结:

  1. 循环结构
-   使用 `while` 循环来迭代处理每一轮的比赛,直到队伍数 `n` 变为1。
-   循环条件是 `n > 1`,确保在队伍数大于1时继续进行比赛。
  1. 条件判断

    • 使用 if-else 语句来判断当前队伍数 n 是偶数还是奇数。
    • 如果 n 是偶数,执行偶数队伍数的处理逻辑。
    • 如果 n 是奇数,执行奇数队伍数的处理逻辑。
  2. 整数除法和取模运算

    • 使用 n % 2 == 0 来判断 n 是否为偶数。
    • 使用 n // 2 进行整数除法,得到下一轮的队伍数。
    • 使用 (n - 1) // 2 计算奇数队伍数时的比赛次数。
  3. 变量更新

    • 在每轮比赛后,更新 total_matches 以累加当前轮的比赛次数。
    • 更新 n 以反映下一轮的队伍数。
  4. 返回结果

    • 当 n 变为1时,返回 total_matches,表示总的比赛次数。

代码实现中的关键点

  • 初始化:在函数开始时,初始化 total_matches 为0。
  • 循环处理:在 while 循环中,根据 n 的奇偶性进行不同的处理,并更新 total_matches 和 n
  • 返回结果:在循环结束后,返回 total_matches 三、学习计划:

1. 每日任务

  • 利用 AI 刷题软件进行 30 - 45 分钟的基础知识点专项刷题,例如选择题、填空题,重点关注教材中的核心概念、公式、定理等。

  • 刷题结束后,仔细查看 AI 给出的错题分析,理解错误原因,将涉及到的知识点记录到错题本上,并结合教材和笔记进行复习强化。 2. 每周任务

  • 周末安排 1 - 2 小时对本周的错题进行集中回顾,重新做一遍错题,检验是否已经掌握。同时,利用 AI 刷题软件的知识点总结功能,梳理本周所学的重点知识框架,查漏补缺。 四、工具应用 在线学习平台

  • CSDN:全球知名中文 IT 技术交流平台,有大量原创博客、精品问答、职业培训、技术论坛、资源下载等,可学习知识、交流探讨、归纳整理.

  • Gitee:基于 Git 的代码托管和研发协作平台,可存放代码,便于查阅和展示,还能增加求职认可度.

  • Coursera:提供 C 语言相关的课程,由专业讲师授课,课程内容系统,通常包含视频讲解、作业练习、项目实践等.