CРОЧНО НА С++
На вход программе подаются два целых числа m и n, по модулю не превосходящие 10^6. Если m≥n, то требуется вывести 1, в противном случае — любое другое число.

Условный оператор, операторы сравнения, циклы и функции min, max, abs использовать нельзя!


Аноним: #include
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<< !((a-b) & 0x80000000);

}
evgenyaltaev: Решение конечно интересно выглядит, а можно узнать как оно работает?
kykareeky: правда, почему такое большое число?
Аноним: На всякий случай
evgenyaltaev: Так а в чём прикол этого 0x80000000? Потому что решать с его помощью тоже нельзя(по крайней мере в Сириусе)
Аноним: У меня все засчитало в Сириусу.
evgenyaltaev: Так преподаватель всё равно проверит и поймет что скатано, в Сириусе такое ещё не проходили
kykareeky: ну есть же несколько человек кто уже все решил... значит как-то это возможно...?
onlymikacha: а вам нормально копировать решения? там же дисквалификация
evgenyaltaev: Я зашёл чтобы посмотреть и убедиться что кто-то это вообще решил, так-то это решение вставлять бесполезно

Ответы

Ответ дал: babakovi679
2

#include <iostream>

int main()

{

   int m, n;

   std::cin>>m>>n;

   int target = m - n;  

   std::cout << -1 * (target >> (8 * sizeof(target) - 1))+1;  

}

Вас заинтересует