Найти такие двузначные числа которые в сумме с числом записанным в обратном порядке дают полный квадрат Например 29+92=121 корен
Найти такие двузначные числа которые в сумме с числом записанным в обратном порядке дают полный квадрат Например 29+92=121 корень121=11 НА ПИТОНЕ ЖЕЛАТЕЛЬНО С ПОЯСНЕНИЯМИ
Перебираем с помощью цикла for список всех двузначных чисел, созданный с помощью функции range(10, 99 + 1).
<u>i % 10</u> * 10 + <u>i // 10</u>— меняем местами десятки и единицы (например, 29 превращаем в 92):
i % 10 — получаем десятки
i // 10 — получаем единицы
Потом добавляем к полученному наше исходное число (например, 29 превращается в 92 и к нему прибавляется 29). Из этой суммы находим квадрат с помощью функции sqrt() из модуля math (мы его подключили первой строкой import math). Чтобы проверить, полный ли квадрат получается из этого числа, нужно проверить, имеет ли остаток полученный корень. Я нашел остаток от деления с помощью конструкции root % 1. Если остаток равен нулю, то квадрат полный, следовательно выводим число в консоль с помощью функции print().
{1. Заполните массив L [9] с клавиатуры числами 105, 126, 134, 176, 181, 193, 132, 144, 156 и ввести на экран } var L:array [1..9] of byte; n,i:byte; begin N:=9; {считываем с клавиатруры N чисел} writeln('введите масссив'); for i:=1 to n do read(L[i]); writeln; writeln('Массив:');
{вывод на экран массива} for i:=1 to n do write(L[i]:7);{7 позиций под число} end.
{2 . заполнить массив К [22] случайными числами в интервале от 2 до 42 и вывести его на экран.} var K:array [1..22] of byte; n,i:byte; begin N:=22; randomize; for i:=1 to n do k[i]:=2+random(41);{если включая [2,42]} writeln; writeln('Массив:');
{вывод на экран массива} for i:=1 to n do write(K[i]:7);{7 позиций под число} end.
Наибольшее возможное значение выражения (F+O+X+E)*(F*R*D*D) = 236196. Прилагаю небольшой скрипт на Python. Простенькая задачка на корректную организацию перебора с использованием вложенных циклов:
max_num = 0 for f in xrange(10): for o in xrange(10): for x in xrange(10): for e in xrange(10): for r in xrange(10): for d in xrange(10): b = f*r*d*d if b == 0: continue num = (f + o + x + e) * b if num > max_num: max_num = num
print "Maximum value of (F+O+X+E)*(F*R*D*D) is: \%i" \% max_num
Решение можно получить гораздо проще, если догадаться, что наибольшее значение выражения достигается, когда сумма F+O+X+E и произведение F*R*D*D являются максимальными. Это одновременно происходит, когда все цифры равны 9: (9+9+9+9)*9*9*9*9 = 236196
Требуется выполнить сортировку временных моментов, заданных в часах, минутах и секундах. Входные данные
Во входном файле INPUT.TXT в первой строке записано число N (1<=N<=100), а в последующих N строках N моментов времени. Каждый момент времени задается 3 целыми числами - часы (от 0 до 23), минуты (от 0 до 59) и секунды (от 0 до 59). Выходные данные
В выходной файл OUTPUT.TXT выведите моменты времени, упорядоченные в порядке неубывания без ведущих нулей. Пример: INPUT.TXT 4 10 20 30 7 30 00 23 59 59 <span>13 30 30 </span> OUTPUT.TXT 7 30 0 10 20 30 13 30 30 <span>23 59 59</span>