Как сделать код без использования рандома?
Сделал программу, которая выводит на экран двузначные числа, у которых, если к сумме единиц и десятков прибавить их квадрат, то получится то же самое число(например 90: (9+0)+(9+0)^2= 9 + 81 =90). Всего таких числа 3: 12, 42 и 90. Прошлая программа и так работала не совсем корректно, а тут ещё препод сказал переделать код без использования рандома. Думал часа 3, ни к чему не пришёл. Четвёртый раз лабу пересдаю. Помогите, пожалуйста. Вот код:
var random = new Random();
int a, b, x, y, c, d;
do
{
x = random.Next(1, 9);
y = random.Next(1, 9);
}
while (x * 10 + y != (x + y) + Math.Pow((x + y), 2));
{
Console.WriteLine($"{x}{y}");
do
{
a = random.Next(1, 9);
b = random.Next(1, 9);
}
while (a * 10 + b != (a + b) + Math.Pow((a + b), 2));
if (a * 10 + b != x * 10 + y)
Console.WriteLine($"{a}{b}");
do
{
c = random.Next(1, 9);
d = random.Next(1, 9);
}
while (c * 10 + d != (c + d) + Math.Pow((c + d), 2));
{
if (c * 10 + d != a * 10 + b && c * 10 + d != x * 10 + y)
Console.WriteLine($"{c}{d}");
}
Console.ReadLine();
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Я не знаю, откуда родился ваш монстр, но простой перевод задачи с русского языка на C# выглядит вот так
static void Main(string[] args)
{
for (int i = 10; i < 100; i++)
{
int digitSum = i / 10 + i % 10;
if (digitSum + digitSum * digitSum == i)
Console.WriteLine(i);
}
Console.ReadKey();
}
Вывод в консоль
12
42
90
do-while
static void Main(string[] args)
{
int i = 10;
do
{
int digitSum = i / 10 + i % 10;
if (digitSum + digitSum * digitSum == i)
Console.WriteLine(i);
i++;
} while (i < 100);
Console.ReadKey();
}