csharp基础练习题:简单有趣#399:请升序序列【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

mac2026-03-30  11

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]

总共有14组的序列.

注意

'1 <= N <= 1000`

3固定测试用例

100随机测试用例,测试的溶液正确性

所有的输入都是有效的.

如果我的引用解决方案提供了错误的结果,在随机测试中,请让我知道(后一个问题).

编程目标:

public class Kata { public static int MakeSequences(int n) { //coding and coding.. } }

测试样例:

namespace Solution { using NUnit.Framework; [TestFixture] public class Tests { [Test] public void ExampleTests() Assert.AreEqual(6, Kata.MakeSequences(6)); Assert.AreEqual(14, Kata.MakeSequences(10)); Assert.AreEqual(1981471878, Kata.MakeSequences(1000)); }

最佳答案(多种解法):

点击查看答案

更多关联题目:

csharp基础练习题:买还是不买【难度:1级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练

免责申明

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢 题目收集至https://www.codewars.com/ https://www.codewars.com/kata/simple-fun-number-399-make-ascending-sequences

最新回复(0)