Насколько я понял, из числа 65 за 5 или менее команд получить 4.
1) 65 - 1 = 64;
2) 64 / 2 = 32;
3) 32 / 2 = 16;
4) 16 / 2 = 8;
5) 8 / 2 = 4.
import math
for i in range(10, 99 + 1):
if math.sqrt(i % 10 * 10 + i // 10 + i) % 1 == 0:
print(i)
Пояснения:
Перебираем с помощью цикла 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().
#include <iostream>
using namespace std;
int main() {
int a, b, c, min, max;
cin >> a >> b >> c;
max = (a > b) ? a : b;
min = (a < b) ? a : b;
a = min; b = max;
max = (b > c) ? b : c;
min = (b < c) ? b : c;
b = min; c = max;
max = (a > b) ? a : b;
min = (a < b) ? a : b;
a = min; b = max;
cout << a << " " << b << " " << c;
return 0;
}
Можно так:
1. В помещение
2. На улице
3. В транспорте
4. Подземные
5. Смешанные
Или так:
1. Хорошие (водители)
2. Тяжелые условия (шахтеры)
3. Отличные (офисные рабочие)
ну это так набросок, а ты сам дополни
Задание 1
var
s:string;
digit:set of '0'..'9';
i,imax:integer;
begin
Write('Введите строку: '); Readln(s);
imax:=Length(s)-1;
i:=imax;
digit:=['0'..'9'];
while i>=2 do begin
if (not (s[i] in digit)) and (s[i+1] in digit) and (s[i-1] in digit)
then Delete(s,i,1);
Dec(i)
end;
Writeln('Результат: ',s)
end.
Тестовое решение
Введите строку: 12*3aa456*78aa
Результат: 123aa45678aa