20至15向下递减,填充数值。第一位20 最后一位15生成8个整数,这样怎么做呢?
例如;
20
19
18
17
17
16
16
15
c# 实现获取指定范围,向下递减生成几个数值
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
7条回答 默认 最新
码老头 2022-04-15 10:38关注20递减到15只能生成6个数,即:20,19,18,17,16,15,你这里要求的是生成8个数。少的两个数是依据什么规则进行补位呢?
写了一个随机数补位的规则, 不知道是不是你期望的:
// 最小数 var min = 15; // 最大数 var max = 20; // 要生成数的个数 var digits = 8; // 生成的数的集合 var numbers = new List<int>(); // 先确保从最大数到最小数递减至少都有一个数 numbers.AddRange(Enumerable.Range(15, max - min + 1)); // 查看结果 Console.WriteLine(string.Join(",", numbers)); // 计算需要补位多少个数 var fillGap = digits - (max - min) - 1; var random = new Random(); // 生成补位的数 for (var i = 0; i < fillGap; i++) { numbers.Add(random.Next(min + 1, max)); } numbers = numbers.OrderByDescending(x => x).ToList(); Console.WriteLine(string.Join(",", numbers));第一次输出结果:
15,16,17,18,19,20 20,19,18,17,17,16,16,15第二次输出结果:
15,16,17,18,19,20 20,19,18,18,17,17,16,15本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录