Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

C++ Минимум из двух

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
11 Дек 2018
Сообщения
303
Реакции
81
Даны два целых положительных числа. Требуется найти меньшее из них. Можно использовать только арифметические операции.
Ввод: 9 4 | Вывод: 4
Ввод: 4 9 | Вывод: 4
Ввод: 4 4 | Вывод: 4
Помогите()()
 
:FailFish::NotLikeThis: Надеюсь это рофл
C++:
Expand Collapse Copy
#include <iostream>

int main()
{
    int a, b;
    std::cin >> a >> b;
    if (a - b > 0)
        std::cout << b;
    else
        std::cout << a;
    return 0;
}

ну или
C++:
Expand Collapse Copy
#include <iostream>

int main()
{
    int a, b;
    std::cin >> a >> b;
    std::cout << ((a - b > 0)? b : a);
    return 0;
}
 
Последнее редактирование:
:FailFish::NotLikeThis: Надеюсь это рофл
C++:
Expand Collapse Copy
#include <iostream>

int main()
{
    int a, b;
    std::cin >> a >> b;
    if (a - b > 0)
        std::cout << b;
    else
        std::cout << a;
    return 0;
}

ну или
C++:
Expand Collapse Copy
#include <iostream>

int main()
{
    int a, b;
    std::cin >> a >> b;
    std::cout << ((a - b > 0)? b : a);
    return 0;
}
Да там же написано!!! Только арифметика
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
поухй, используем min(a;b)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Модуль, кстати, тоже нельзя...
Блять, нельзя сравнить два числа не сравнивая их
C++:
Expand Collapse Copy
#include <iostream>

int main()
{
    int a, b;
    std::cin >> a >> b;
    int c = a - b;
    std::cout << (((c >> 31) & 1 ^ 1)? b : a);
    return 0;
}
 
Блять, нельзя сравнить два числа не сравнивая их
C++:
Expand Collapse Copy
#include <iostream>

int main()
{
    int a, b;
    std::cin >> a >> b;
    int c = a - b;
    std::cout << (((c >> 31) & 1 ^ 1)? b : a);
    return 0;
}
Преподу абсолютно мега гипер до пизды
Блять, нельзя сравнить два числа не сравнивая их
Видимо можно путем чистой арифметики
 
Преподу абсолютно мега гипер до пизды

Видимо можно путем чистой арифметики
C++:
Expand Collapse Copy
#include <iostream>
#include <limits.h>

int flip(int bit) {
  return 1^bit;
}

int sign(int a) {
  return flip((a >> (sizeof(int) * CHAR_BIT - 1))) & 0x1;
}

int getMaxNaive(int a, int b) {
  int k = sign(a - b);
  int q = flip(k);
  return a * k + b * q;
}

int main()
{
    int a, b;
    std::cin >> a >> b;
   
    std::cout << getMaxNaive(a, b);

    return 0;
}

две минуты гуглежа
p.s: source:
Пожалуйста, авторизуйтесь для просмотра ссылки.

p.s2: здесь находится большее, но если поднапрячь мозги, можно найти и меньшее :LUL:
 
C++:
Expand Collapse Copy
#include <iostream>
#include <limits.h>

int flip(int bit) {
  return 1^bit;
}

int sign(int a) {
  return flip((a >> (sizeof(int) * CHAR_BIT - 1))) & 0x1;
}

int getMaxNaive(int a, int b) {
  int k = sign(a - b);
  int q = flip(k);
  return a * k + b * q;
}

int main()
{
    int a, b;
    std::cin >> a >> b;
 
    std::cout << getMaxNaive(a, b);

    return 0;
}

две минуты гуглежа
p.s: source:
Пожалуйста, авторизуйтесь для просмотра ссылки.

p.s2: здесь находится большее, но если поднапрячь мозги, можно найти и меньшее :LUL:
Доп библиотеки запрещены. Да что все пишут что это изи, я же говорю, нужно чисто арифметикой, иначе отказ
P.S. Цитирую: "Решаете крайне легкие задачи сложными путями. Буду снижать баллы."
 
Последнее редактирование:
|a - b| = sqrt((a-b)*(a-b))
a + b - |a - b| = 2*min(a,b)
Отсюда
min(a,b) = (a + b - sqrt((a-b)*(a-b))) / 2
корень нельзя
чисто арифметикой эти никак не сделать
я сегодня к нему пришел на пару опять, он мне опять сказал - "можно", я говорю: "мне хоть модуль можно?", он говорит - нет. Пишет на доске: + - / * %, - эти операции допустимы. Я так же как ты думаю, но этому зав кафедры всё подвластно, поэтому я ему верю, лол)
 
Решение не очень трудное, просто не сразу в голову приходит
C++:
Expand Collapse Copy
double a = 4.0;
double b = 9.0;
std::cout << (a + b) / 2 - -(a - b) / 2;
 
Последнее редактирование:
Назад
Сверху Снизу