Максимальное из двух чисел питон

Определить максимальное из двух чисел

Стоит задача разобраться. Задание на курсейре.
Напишите программу, которая считывает два целых числа A и B и выводит наибольшее значение из них. Числа — целые от 1 до 1000.
При решении задачи можно пользоваться только целочисленными арифметическими операциями. Нельзя пользоваться нелинейными конструкциями: ветвлениями, циклами, функциями.

Вот что получилось сделать, но оно проходит тесты чисто случайно. На больших числах — показывает чушь.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A = int(input()) B = int(input()) # насколько одно число больше другого? что прибавлять к меньшему Diff = int(abs(A - B)) # Для того чтобы получить четкий признак + или - isPositive = (A // B - B // A) # что-то вроде сигмоида, но используются везде Int и не используются # другие функции. # Питон приводит тип к Int и получаем ноль вместо очень маленького # положительного числа dec = int(10 ** isPositive // 10 * (A // B)) # выводим число В. Если оно больше, то к нему прибавляется разница, # умноженная на 0, иначе - число В - меньше # и к нему прибавляется разность А и В R = int(B + dec * Diff) print(R)

Определить максимальное из двух введенных чисел
Напишите программу, которая определит максимальное из двух введенных чисел. Реализовать в виде.

Определить максимальное и минимальное значения из двух различных вещественных чисел
Определить максимальное и минимальное значения из двух различных вещественных чисел.

Дано пять чисел. Определить максимальное из них.Определить функцию, находящую максимум из двух различных чисел
Дано пять чисел. Определить максимальное из них.Определить функцию, находящую максимум из двух.

Определить максимальное из двух чисел
Если не затруднит: "Вводятся 2 числа. определить максимальное из эти чисел. Если числа равно -.

Читайте также:  Валидация формы телефона php

Эксперт Python

def maximer(a, b): if a > b: print('max=' + str(a)) return a else: print('max=' + str(b)) return b if __name__ == '__main__': assert maximer(a=1, b=2)

Источник

Как вывести наибольшее значение из двух чисел?

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

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

ЫЫыыыыы. Ни малейшего понятия как это решать.

Из двух массивов первым на печать вывести массив, содержащий наибольшее значение
Заданы два массива А(N) и В(M). Первым на печать вывести массив, содержащий наибольшее значение.

Вывести наибольшее и наименьшее из двух заданных чисел, используя процедуру
Вывести наибольшее и наименьшее из двух заданных чисел, используя процедуру (одну!) поиска.

Определить наибольшее значение среди чисел и вывести на экран
Сгенерировать K случайных чисел из диапазона от a до b (а и b ввести с клавиатуры). Определить.

Требуется найти наибольшее из 3-х чисел и вывести значение разделенное на полусумму [тернарная операция, if-else]
Даны три произвольных числа. Найти наибольшее из них и вывести на экран его значение, разделенное.

Требуется найти наибольшее из 3-х чисел и вывести значение разделенное на полусумму [тернарная операция, if-else]
Даны три произвольных числа. Найти наибольшее из них и вывести на экран его значение, разделенное.

Эксперт С++

Тьфу ты. Целый час сидел думал.
*удалено*

Кстати, если нельзя использовать функции, то фиг ты сделаешь ввод данных (по крайней мере, я не знаю как). raw_input — это функция, пусть и встроенная. Так что можешь утверждать, что задача нерешаема )

UPD.: Поспешил, не работает, если a делится на b или наоборот.

Можно конечно ввод использовать. Я вот тоже голову ломаю. Постоянно упираюсь в деление на ноль.

Добавлено через 8 минут
ЫЫЫ!

a=int(input()) b=int(input()) print((((a // b) * a) + ((b // a) * b)) // ((a // b) + (b // a)))
(a, b) = eval(input('Введите значения a и b через запятую: ')) c = a // b c = ((c + 2) // (c + 1)) % 2 d = (c + 1) % 2 res = a * c + b * d print(res)
n2 = int(input()) n1 = int(input()) res = (n1 // n2 * n1 + n2 // n1 * n2) // (n2 // n1 + n1 // n2) print(res)

(n1 // n2 * n1 + n2 // n1 * n2) — эта часть позволяет найти большее из двух чисел
(n2 // n1 + n1 // n2) — с помощью деления происходит обработка ситуации, когда оба числа равны

Используя функцию нахождения максимума из двух чисел, найти наибольшее из 5 чисел
Используя большее из двух чисел, найти большие из чисел А, В, С, Н, Р. А=1, В=0, С=4, Н=4, Р=3

Если сумма чисел x, y, z больше 10, то наибольшее из этих чисел заменить суммой двух других
Если сумма трех различных действительных чисел x, y, z больше 10, то наибольшее из .

Если сумма двух чисел больше 10, то наибольшее число заменить произведением этих чисел, иначе суммой
Если сумма двух чисел больше 10, то наибольшее число заменить произведением этих чисел, иначе.

Вывести сумму двух первых чисел одномерного массива, равную сумме двух последних чисел
Дан массив (одномерный) четырёхзначных чисел, вывести сумму двух первых чисел, равных сумме двум.

Источник

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

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

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

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

Оценить 4 комментария

weranda

weranda

Вячеслав: Методы сам подписал к условиям, чтобы было яснее, что пользоваться можно только арифметическими операторами.

fox_12

>>> 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, поэтому явно функции для ввода/вывода на экран не использовал, если это важно, конечно 🙂

weranda

fox_12

weranda: Ну собственно знания арифметических операторов Python и собственных мозгов хватило. Что почитать на эту тему — не знаю 🙂

weranda

fox_12

weranda: Логика в том, что при целочисленном делении меньшее число будет давать в результате 0. А 0 при умножении на любое число дает 0. Точно так же как и при сложении. Таким образом в числителе мы получили результат от целочисленного деления, помноженный на бОльшее число. Осталось только сократить на этот результат целочисленного деления. Как-то так.

aRegius

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

Прошу прощения за некропостинг, но тут не единственная «засада». Вторая «засада» в том, что ** .5 — это особенность питона, в большинстве других языков квадратный корень — это, всё-таки, функция. Если (x-y) ** 2 ещё можно переписать, как (x-y)*(x-y), то квадратный корень представить простой арифметической операцией не выйдет. К тому же, ТС явно указал список операторов, с которыми можно работать: +, -, *, //, %, =

aRegius

Roman Kitaev: Занесло же Вас, Роман. Дела давно минувших дней. 🙂 Тут вообще нужно эти два шага убрать, а разность чисел просто передать аргументом функции abs, z = abs(x — y).

Источник

Оцените статью