如何生成100个[0..132]随机整数并输出不在(26..100]的数?
解决方案
首先明确筛选规则:我们要保留的是≤26或者**>100**的数(因为(26..100]指的是大于26且小于等于100,不属于这个区间的就是反过来的情况)。
直接在你现有代码的循环里加判断逻辑就行,修改后的完整代码如下:
Random rand = new Random(); for (int i = 1; i <= 100; i++) { int x = rand.Next(0, 133); // 注意:Next方法是左闭右开,要生成[0..132]的数,第二个参数得写133 // 判断是否不属于(26..100] if (x <= 26 || x > 100) { Console.WriteLine(x); // 输出符合条件的数 } }
关键说明:
- 关于
rand.Next(0, 133):C#的Random.Next(minValue, maxValue)是左闭右开区间,也就是包含minValue,不包含maxValue。所以要生成0到132(包含132)的整数,maxValue得传133,你原来写的132只能生成到131,这里要修正。 - 筛选条件
x <=26 || x>100:精准对应“不属于(26..100]”的要求,把符合条件的数直接打印输出即可。
内容的提问来源于stack exchange,提问作者Sevinch
相关产品推荐
相关产品推荐

