Форум программистов, компьютерный форум CyberForum.ru

Задача с булевым типом - C++

Восстановить пароль Регистрация
 
Dima_c8
 Аватар для Dima_c8
4 / 4 / 0
Регистрация: 17.12.2011
Сообщений: 148
19.02.2012, 08:10     Задача с булевым типом #1
Здраствуйте! Вот над задачей уже третий день голову ламаю: Имеются три числа А,В,С.Нужно вывести на экран false если больше чем одно из этих чисел четное и true если только одно из этих чисел четное,при этом нельзя использовать ни if,for короче нужно использовать вот такого типа выражение : м==п||и>0 ну и что в таком духе.Одно я знаю точно здесь нужно использовать boolalpha в потоке cout
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 08:10     Задача с булевым типом
Посмотрите здесь:

C++ Метод за типом класса
работа с файловым типом((( C++
C++ Работа с символьным типом
C++ Строки с типом char * в С++
Операции с типом double C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
19.02.2012, 08:52     Задача с булевым типом #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int a = 2, b = 5, c = 7;
    cout << boolalpha << (((a % 2 == 0) && (b % 2 == 0)) || ((a % 2 == 0) && (c % 2 == 0)) || ((b % 2 == 0) && (c % 2 == 0))) << endl;
    system("PAUSE > NULL");
    return EXIT_SUCCESS;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.02.2012, 09:45     Задача с булевым типом #3
Цитата Сообщение от Dima_c8 Посмотреть сообщение
true если только одно из этих чисел четное
Цитата Сообщение от dimcoder Посмотреть сообщение
int a = 2, b = 5, c = 7;
http://liveworkspace.org/code/18a15d...b0c10d7e6f97e2
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
19.02.2012, 10:56     Задача с булевым типом #4
soon, задание через слово просто читал

Цитата Сообщение от Dima_c8 Посмотреть сообщение
false если больше чем одно из этих чисел четное и true если только одно из этих чисел четное
По логике можно сократить до
Цитата Сообщение от Dima_c8 Посмотреть сообщение
true если только одно из этих чисел четное
Т.к. ничего не сказано если вообще все нечетные
И тогда:
C++
1
2
bool f = ((a % 2 == 0 && b % 2 != 0 && c % 2 != 0) || (a % 2 != 0 && b % 2 == 0 && c % 2 != 0) || (a % 2 != 0 && b % 2 != 0 && c % 2 == 0));
cout << boolalpha << f << endl;
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
19.02.2012, 12:17     Задача с булевым типом #5
Как вариант:
C++
1
cout << boolalpha << ( !( ( a + b + c ) & 1 ) && ( ( a & 1 ) || ( b & 1 ) ) ) << endl;
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.02.2012, 12:42     Задача с булевым типом #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
typedef unsigned T_uint;
 
bool func(T_uint a, T_uint b, T_uint c)
{
    return (((a & b) ^ c) & (a | b & 1));
}
 
int main()
{
    for(int i = 0; i < 4; ++i)
        for(int j = i; j < 4; ++j)
            for(int k = j; k < 4; ++k)
                std::cout   <<  "func(" <<  i   <<  ", "
                                        <<  j   <<  ", "
                                        <<  k   <<  ") = "
                                        <<  std::boolalpha
                                        <<  func(i, j, k)
                                        <<  std::endl;
    return 0;
}
out
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
func(0, 0, 0) = false
func(0, 0, 1) = false
func(0, 0, 2) = false
func(0, 0, 3) = false
func(0, 1, 1) = true
func(0, 1, 2) = false
func(0, 1, 3) = true
func(0, 2, 2) = false
func(0, 2, 3) = false
func(0, 3, 3) = true
func(1, 1, 1) = false
func(1, 1, 2) = true
func(1, 1, 3) = false
func(1, 2, 2) = false
func(1, 2, 3) = true
func(1, 3, 3) = false
func(2, 2, 2) = false
func(2, 2, 3) = false
func(2, 3, 3) = true
func(3, 3, 3) = false
Dima_c8
 Аватар для Dima_c8
4 / 4 / 0
Регистрация: 17.12.2011
Сообщений: 148
19.02.2012, 16:00  [ТС]     Задача с булевым типом #7
Люди я вот сматрю на вашы ответы и не могу понять что такое & я привык думать что это взятие адреса и ^ первый раз вижу,слышу :
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.02.2012, 16:03     Задача с булевым типом #8
Dima_c8, битовые операции почитайте.
Dima_c8
 Аватар для Dima_c8
4 / 4 / 0
Регистрация: 17.12.2011
Сообщений: 148
19.02.2012, 16:07  [ТС]     Задача с булевым типом #9
Та вот только что в яндексе пытался найти и ничего ни нашол
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2012, 16:08     Задача с булевым типом
Еще ссылки по теме:

Преобразовать массив с типом char в массив с типом int C++
C++ Asterisk с типом / с именем ?
C++ Работа с типом char

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.02.2012, 16:08     Задача с булевым типом #10
Wiki
Yandex
Объявления
19.02.2012, 16:08     Задача с булевым типом
Ответ Создать тему
Опции темы

Текущее время: 15:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru