weranda
@weranda

Как решить, казалось бы, простую задачу на python3?

Приветствую

Наткнулся на задачу и не могу ее решить в соответствии с условиями.

Задача:

Напишите программу, которая считывает два целых числа a и b и выводит наибольшее значение из них. Числа — целые от 1 до 1000.

При решении задачи можно пользоваться только целочисленными арифметическими операциями +, -, *, //, %, =. Нельзя пользоваться нелинейными конструкциями: ветвлениями, циклами, функциями, методами.

Из выделенного жирным текста следует, что можно пользоватсья только арифметическими операторами.
  • Вопрос задан
  • 38762 просмотра
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Например навскидку:
>>> a,b=94,54
>>> (a*(a//b) + b*(b//a))/(b//a+a//b)
94
>>> a,b=6,322
>>> (a*(a//b) + b*(b//a))/(b//a+a//b)
322

P.S. Делал в консоли Python, поэтому явно функции для ввода/вывода на экран не использовал, если это важно, конечно :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
aRegius
@aRegius
Python Enthusiast
Привет.

1. Есть два числа, x и y (целые положительные).
2. Есть их разность, z (z = x - y)
3. Чтобы найти большее из них, всего-то нужно сумму этих двух чисел и их разности разделить на 2:
max_num = (x + y + z)/2
4. Единственная "засада" в том, что, ввиду неопределенности чисел, их разность может быть отрицательным числом (например, x = 5, y = 853, x - y = - 848).
5. Поэтому нам надо обеспечить, чтобы разность, при любом раскладе, была положительная.
6. Для этого мы эту самую разность возводим во вторую степень и извлекаем из результата квадратный корень - для того, чтобы код был менее шумный, разделим эту процедуру на два этапа: a) z = (x - y) ** 2; б) z = z ** .5

7. Итоговый код:
z = (x - y) ** 2
z = z ** .5
max_num = (x + y + z) / 2
Ответ написан
RusTech
@RusTech
print((((a // b) * a) + ((b // a) * b)) // ((a // b) + (b // a)))
Ответ написан
Комментировать
@vatrusheknet
A = int(input())
B = int(input())
A1 = A // B
A2 = A % B
A3 = 0**(A - A2)
B1 = B // A
B2 = B % A
B3 = 0**(B - B2)
Max = A1 * B2 + A2 * B1 + B2 * A3 + A2 * B3 + A * A3**B3 * B3**A3
print(Max)
Ответ написан
@Raffon
print((a + b + abs(a - b)) / 2)
Ответ написан
Комментировать
@Asteroid2022
Без использования ABS()
n=int(input())
m=int(input())
print(int((((n-m)/2)*((n-m)/2))**0.5+(n+m)/2))
Отрицательную полуразность в случае n
Ответ написан
Комментировать
@cakeboy
Пытался подставить решения выше, но ничего не вышло. ниже решение на сириус курсах :
a = int(input())
b = int(input())
u = a // b
c = (u - 1) // (u + 1) + 1;
print(c * a + (1 - c) * b)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы