简体   繁体   中英

array with positive double-digit random numbers

Write a program that fills a 15-byte array with positive double-digit random numbers. in each number, the sum of the two digits is equal to 9.

Here's what I've done so far:

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]);
}

The problem with your solution is that rnd.Next(10, 99) will not always produce number with the properties that you want. you should write a code that always works.

We know that sum of digits of a number should be 9. if we assume our two-digit number to be a*10+b where a and b are digits and a + b = 9 , we can randomly generate a from 1 to 9.

Then we can calculate other digit b = 9 - a .

therefor our final result would be a*10 + 9 - a which will be simplified to a*9 + 9 where a is random number from 1 to 9, here are two examples.

a=7 then 7 * 9 + 9 = 72, 7 + 2 = 9
a=3 then 3 * 9 + 9 = 36, 3 + 6 = 9

note that a is in this range 1 <= a < 9

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM