2025华为od机试真题B卷【构造数列】Python实现

目录

题目

思路

Code


题目

小明在做构造数列的题目,题目要求数列中第一个数为n,且数列后面的每一个数字都不能大于前一个数字的一半,数列的元素都是正整数,请问在给定n的情况下,最多能构造多少合法且不同的数列?
输入描述
输入一个n
备注
1 <= n< 10000
输出描述
输出可以构造的序列个数

示例1:

输入:

7

输出:

6

说明:

可以构成 [7], [7,3],[7,2],[7,1],[7,3,1],[7,2,1]

示例2:

输入:

5

输出:

4

说明:

可以构成 [5],[5,2],[5,1],[5,2,1]

思路

关键约束:

  • 如果前一个数是x,下一个数最大为floor(x/2)
  • 每个位置可以选择1到f

你可能感兴趣的:(OD机试,华为od,python,开发语言,华为od机试,2025B卷)