CSP-J 2020 入门级编程真题:优秀的拆分

四季读书网 1 0
CSP-J 2020 入门级编程真题:优秀的拆分
CSP-J 2020 入门级编程真题:优秀的拆分 第1张
CSP-J 2020 入门级编程真题:优秀的拆分 第2张

CSP - J 2020

一、

编程题

优秀的拆分

CSP-J 2020 入门级编程真题:优秀的拆分 第3张
CSP-J 2020 入门级编程真题:优秀的拆分 第4张

二、

参考答案

解题方法:

  • 奇数一定无解

  • 只能用 4、8、16、32… 这些数

  • 从大到小拆,能拆就拆,最简单!

一、奇数直接无解(最重要)

CSP-J 2020 入门级编程真题:优秀的拆分 第5张
  • 2²=4,2³=8,2⁴=16……全是偶数

  • 偶数 + 偶数 = 偶数

  • 所以奇数永远不可能被表示 → 直接输出 -1

二、 从大到小拆分数字(贪心算法)

CSP-J 2020 入门级编程真题:优秀的拆分 第6张
  • 从最大的数开始试(2²³),因为大的数优先用,拆分最简单

  • 一个个往下试,直到试到 2²(4)为止

  • 能用上就用,用了就把这个数记下来

  • 剩下的数字继续拆,直到变成 0

完整答案

CSP-J 2020 入门级编程真题:优秀的拆分 第7张
CSP-J 2020 入门级编程真题:优秀的拆分 第8张
CSP-J 2020 入门级编程真题:优秀的拆分 第9张

商业合作

1.定制版教具、竞赛版教具。

2.國際機器人教育發展協會师资培训

3.开展青少年机器人等级评测授权服务

4.四个教学点,任意选择

CSP-J 2020 入门级编程真题:优秀的拆分 第10张

抱歉,评论功能暂时关闭!