csharp基础练习题:简单有趣#399:请升序序列【难度:1级】:
任务
您将得到一个正整数N
.我们打算根据以下规则做出一些升序:
1.长度为1的序列:[n]的
2.或者,插入一个数字到该序列的左侧.但这个数量不能超过一半的序列的第一个号码.
3.按照规则2,不断插入数序列的左侧.
你的任务是要计算所有可能的序列号,并将其返回.
如果你不明白的任务,请阅读下面的重写版本:
您将得到一个正整数N
.你的任务是计算这样的序列数:
-
它应该是一个递增的序列;
-
它应与数
N
结束. -
序列中的每个数应小于或等于其右边的一半,除了最后一个数字
N
. -
我们定义只包含了一些
N
序列是一个有效的递增序列.
例子
对于N = 6
,输出应该是6
.
我们所做的所有序列是:
[6]
插入数字向左:
[1,6]
[2,6]
[3,6]
继续插入数:
[1,2,6]
[1,3,6]
总共有6组的序列.
对于N = 10
,输出应该是14
.
我们所做的所有序列是:
[10]
插入数字向左:
[1,10]
[2,10]
[3,10]
[4,10]
[5,10]
继续插入数:
[1,2,10]
[1,3,10]
[1,4,10]
[10,2,4]
[1,5,10]
[2,5,10]
继续插入数:
[1,2,4,10]
[1,2,5,10]