Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
studata
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 8
1

Сравнить два введенных числа, не используя логические выражения

17.10.2015, 22:58. Просмотров 985. Ответов 8
Метки нет (Все метки)

Здравствуйте ! Дали задачу, не знаю как сделать не используя условия, прошу помощи в решении:
Даны числа X и Y, если X в 2 раза больше Y – вывести 1, иначе – 0. Решить задачу с использованием логических выражений (конструкцию ветвления использовать нельзя).
Решил так, но с условием (
C++ (Qt)
1
2
3
4
5
6
7
8
    int x = 8, y = 2;
 
    if (y * 2 == x)
        cout << "1";
    else
        cout << "0";
    
    system("pause");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2015, 22:58
Ответы с готовыми решениями:

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

Записать логические выражения, используя условные операторы, операции отношений и логические операции
Записать логические выражения, используя условные операторы, операции отношений...

Сравнить два целых числа, не используя условного оператора, оператора выбора и так же символов сравнения
Добрый день уважаемые программисты, хотелось, чтобы вы помогли мне в решении...

Сравнить два числа, вывести большее
Добрый день изучаю с++, дошел до оператора if. Задание такое - сравнить два...

Длинная арифметика. Сравнить два числа
Составить программу для сравнения двух n-значных чисел (n &gt; 20). Учитывать знак...

8
Barrent
246 / 122 / 54
Регистрация: 04.05.2013
Сообщений: 346
Завершенные тесты: 2
17.10.2015, 23:14 2
C++
1
cout << (int)(x == (2 * y)) << endl;
1
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.10.2015, 23:45 3
Barrent, приводить к инту не обязательно. Если, конечно, не установлен std::boolalpha
1
Barrent
246 / 122 / 54
Регистрация: 04.05.2013
Сообщений: 346
Завершенные тесты: 2
17.10.2015, 23:55 4
хм, кажись созрел вариант без логических операторов. С х=0 правда не очень выйдет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include <iostream>
 
using namespace std;
int main()
{
    int x, y;
    cout << "x: ";
    cin >> x;
    cout << "y: ";
    cin >> y;
    int c1 = x % (2 * y) - x;       //если 2y>x, то равно 0, если x == 2y, то равно -x
    int c2 = (2 * y) % x - (2 * y); //если 2y<x, то равно 0, если x == 2y, то равно -x
    int c = (c1*c2) / (x*x);
    cout << c << endl;
    system("pause");
    return 0;
}
1
panotnap
30 / 30 / 5
Регистрация: 24.09.2014
Сообщений: 243
18.10.2015, 00:06 5
ассемблер >> вычитание >> вывод флага
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
18.10.2015, 10:56 6
Цитата Сообщение от Barrent Посмотреть сообщение
вариант без логических операторов
C++
1
cout << static_cast<bool>(~(x - 2*y)) << endl;
0
Barrent
246 / 122 / 54
Регистрация: 04.05.2013
Сообщений: 346
Завершенные тесты: 2
18.10.2015, 11:08 7
Лучший ответ Сообщение было отмечено studata как решение

Решение

Tulosba,
немного поправлю
C++
1
cout << static_cast<bool>(!(x - 2 * y)) << endl;
1
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
18.10.2015, 19:48 8
Лучший ответ Сообщение было отмечено studata как решение

Решение

Цитата Сообщение от Barrent Посмотреть сообщение
немного поправлю
С точки зрения результата получилось правильно, т.к. я ошибся c ~
Но я не использовал ! по причине того, что это всё таки логический оператор.
Без логических операторов предлагаю исправленный вариант:
C++
1
cout << (static_cast<bool>(x - 2 * y)^1) << endl;
1
studata
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 8
20.10.2015, 13:39  [ТС] 9
Спасибо ребята!
0
20.10.2015, 13:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2015, 13:39

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

Написать программу, которая сравнивает два введенных с клавиатуры числа
Помогите решить пожалуйста) Написать программу, которая сравнивает два...

Составить программу, сравнивающую два числа, введенных римскими цифрами
Пожалуйста помогите решить задачу С++ с помощью функций:Составить программу,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru