具有正两位数随机数的数组

问题描述 投票:-3回答:1

编写一个程序,用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]);
}
c# arrays
1个回答
0
投票

您的解决方案的问题是rnd.Next(10, 99)不会总是使用您想要的属性生成数字。你应该编写一个始终有效的代码。

我们知道数字的总和应该是9.如果我们假设我们的两位数字是a*10+b,其中ab是数字和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

© www.soinside.com 2019 - 2024. All rights reserved.