生成20个不同的随机数,要求利用一维数组来求解问题。利用Random类可生成随机数,每个数在10(含)和100(不含)之间。在生成每个数值时,检查一下是否和之前已存的数一样,如果相同则舍去,不同则存入数组。对这20个各不相同的数排序(使用Array.Sort()方法),最后输出。 提示: Random random = new Random();//创建随机数对象,要在循环内部建该对象 int n = random.Next(10, 100);//在循环内部使用random对象,生成10到100(不含)间的值 将程序复制到下方,并将你的运行结果截图放在程序后面。 解答: Random random = new Random(); int count = 0; int[] values = new int[20]; while (count < 20) { int n = random.Next(10, 100); //bool contains = values.Contains(n); /*bool contains = false; foreach (int stored in values) { if (stored == 0) break; if (n == stored) { contains = true; break; } }*/ //if (!contains) //{ // values[count] = n; // count++; //} int index = Array.IndexOf(values, n); if (index < 0) { values[count] = n; count++; } } Array.Sort(values); for (int i = 0; i < values.Length; i++) { Console.Write($"{values[i]}\t"); if (i == 9) Console.WriteLine(); } 西绪福斯黑洞也就是所谓的123数字黑洞。数学中的123就跟英语中的ABC一样平凡和简单。然而,按以下运算顺序,就可以观察到这个最简单的数字黑洞的值: 例如:1234567890,进行以下统计: 偶:数出该数数字中的偶数个数,在本例中为2,4,6,8,0,总共有 5 个。 奇:数出该数数字中的奇数个数,在本例中为1,3,5,7,9,总共有 5 个。 总:数出该数数字的总个数,本例中为 10 个。 新数:将答案按 “偶-奇-总” 的位序,排出得到新数为:5510。 重复上述过程:将新数5510按以上算法重复运算,可得到新数:134。重复:将新数134按以上算法重复运算,可得到新数:123。结论:对数1234567890,按上述算法,最后得出123的结果。 请编写程序,测试:对任意一个数,按上述步骤经有限次重复后都会是123。换言之,任何数的最终结果都无法逃逸123黑洞。 将程序复制到下方,并将你的运行结果截图放在程序后面。 解答: string str = Console.ReadLine(); while(true) { int even = 0; int odd = 0; int sum = str.Length; foreach(char ch in str) { if ((ch - '0') % 2 == 0) even++; else odd++; } str = $"{even}{odd}{sum}"; Console.WriteLine(str); if (Convert.ToInt32(str) == 123) break; }