#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