массив с положительными двузначными случайными числами

#c# #arrays

#c# #массивы

Вопрос:

Напишите программу, которая заполняет 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 amp;amp; one   two == 9)
        Console.WriteLine(arr[i]);
}
  

Комментарии:

1. Вы должны хотя бы показать нам, что вы уже пробовали

2. Я не знаю, как написать программу и как бы вы чему-то научились, если бы кто-то другой делал вашу домашнюю работу?

3. Это не сервис для выполнения домашней работы за вас. Если эта проблема слишком сложна для вас, начните с решения более простой задачи . Можете ли вы написать программу, которая заполняет 15-байтовый массив двузначным числом 18? Это удовлетворяет всем требованиям вашей программы, за исключением «случайной» части; затем вы свели проблему к выяснению того, как генерировать случайные числа, удовлетворяющие ограничению. Если вы не можете этого сделать, найдите более простую проблему, которую вы можете решить . В этом и заключается суть компьютерного программирования: превращение решений более простых задач в решения более сложных задач.

4. математическая часть должна быть простой, начинаться с 1, так что 1 8 = 9, также 2 7, 3 6, 4 5, 5 4, 6 3 и так далее. чтобы получить 18 из 1 и 8, необходимо 1*10 8 . продолжайте и попробуйте реализовать это. (подсказка: используйте цикл)

5. Я знаю, что это не сервис для выполнения моей домашней работы. Однако это форум для того, чтобы задавать вопросы. Прошу прощения, если я кого-то оскорбляю. Пока что это моя программа: 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; if (arr[i] % 2 == 0 amp;amp; one two == 9) { Консоль. Строка записи(arr[i]); } }

Ответ №1:

Проблема с вашим решением заключается в том, что rnd.Next(10, 99) не всегда выдает число с нужными вам свойствами. вы должны написать код, который всегда работает.

Мы знаем, что сумма цифр числа должна быть равна 9. если мы предположим, что наше двузначное число равно, a*10 b где a и b являются цифрами и a b = 9 , мы можем случайным образом сгенерировать a от 1 до 9.

Затем мы можем вычислить другую цифру 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