编写一个程序,用15位字节的数组填充正两位数的随机数。在每个数字中,两个数字的总和等于9。
这是我到目前为止所做的:
int one = 0;
int two = 0;
int[] arr = new int[15];
Random rnd = new Random();
for (int i = 0; i < arr.Length; i++)
{
arr[i] = rnd.Next(10, 99);
one = arr[0] % 10;
two = arr[0] / 10;
if (arr[i] % 2 == 0 && one + two == 9)
Console.WriteLine(arr[i]);
}
您的解决方案的问题是rnd.Next(10, 99)
不会总是使用您想要的属性生成数字。你应该编写一个始终有效的代码。
我们知道数字的总和应该是9.如果我们假设我们的两位数字是a*10+b
,其中a
和b
是数字和a + b = 9
,我们可以从1到9随机生成a
。
然后我们可以计算其他数字b = 9 - a
。
因此,我们的最终结果将是a*10 + 9 - a
,它将被简化为a*9 + 9
,其中a
是从1到9的随机数,这里有两个例子。
a=7 then 7 * 9 + 9 = 72, 7 + 2 = 9
a=3 then 3 * 9 + 9 = 36, 3 + 6 = 9
请注意,a
在此范围内1 <= a < 9