Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/470: Рейтинг темы: голосов - 470, средняя оценка - 4.62
Romiys
3 / 3 / 0
Регистрация: 27.12.2010
Сообщений: 56
1

Проверка числа на чётность/нечётность

04.02.2011, 15:33. Просмотров 88981. Ответов 17
Метки нет (Все метки)

Подскажите пожалуйста молодому-неопытному как проверить в С++ чётное число или нечётное? Есть какя-то специальная функция?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2011, 15:33
Ответы с готовыми решениями:

Проверка числа типа double на чётность/нечётность
В программе необходимо проверить число типа double на то, является оно четным или нет. Это возможно...

Итератор и проверка на чётность/нечётность
Добрый день. Не получается организовать проверку на нечётное количество. При вводе нечётного...

Проверка числа на чётность
Какой из этих способов работает быстрее if (!(a%2)) или if (!(a&1))

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

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

17
asics
Freelance
Эксперт С++
2865 / 1800 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
04.02.2011, 15:37 2
Лучший ответ Сообщение было отмечено как решение

Решение

Romiys,
C++
1
2
3
4
5
int a = 3;
if(a % 2 == 0)
   //четное
else
   //не четное
6
MegaAce
331 / 305 / 155
Регистрация: 14.02.2010
Сообщений: 662
04.02.2011, 15:38 3
C++
1
if (a%2==0) cout<<"Chetnoe!" else cout<<"Nechetnoe";
1
no0ker
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
04.02.2011, 15:49 4
а если в двоичном виде глянуть.
если младший бит 1 - нечетное. если 0 - четное.
2
04.02.2011, 15:49
Mayonez
385 / 277 / 53
Регистрация: 26.12.2009
Сообщений: 875
04.02.2011, 17:48 5
C++
1
2
unsigned long long int a = 15;
cout << (a%2 ? "Ne chetnoe" : "Chetnoe...") << endl;
0
asics
Freelance
Эксперт С++
2865 / 1800 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
04.02.2011, 17:52 6
Mayonez, Вы имели введу так
C++
1
2
unsigned long long int a = 15;
cout << ( !(a%2) ? "Chetnoe..." : "Ne chetnoe") << endl;
0
Mayonez
385 / 277 / 53
Регистрация: 26.12.2009
Сообщений: 875
04.02.2011, 17:53 7
asics,
исправил...
0
slavich
13 / 13 / 2
Регистрация: 25.10.2009
Сообщений: 32
04.02.2011, 19:22 8
Можно еще(оптимальней) так:
C++
1
2
3
4
if(chislo&1)
printf("nechetn");
else 
printf("chetn");
0
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
04.02.2011, 21:48 9
asics вместо сравнения с 0 лучше наверно так записать
C++
1
2
3
4
5
int a = 3;
if(!(a % 2))
   //четное
else
   //не четное
1
asics
Freelance
Эксперт С++
2865 / 1800 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
04.02.2011, 22:00 10
panicwassano, Это одно и тоже, просто когда пишу для себя, всегда пишу так(всмисле с логическим not), а прировнял к нулю, потому что так читабильней и понятней для новичка.
1
taras atavin
4189 / 1778 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
04.02.2011, 22:15 11
Цитата Сообщение от panicwassano Посмотреть сообщение
C++
1
2
3
4
5
int a = 3;
if (!(a % 2))
 //четное
else
 //не четное
Тогда уж лучше так:

C++
1
2
3
4
5
int a = 3;
if (a % 2)
 //не четное
else
 //четное
0
st_dent
64 / 64 / 12
Регистрация: 05.07.2010
Сообщений: 219
04.02.2011, 22:56 12
taras atavin, да? а почему не так?
C++
1
2
int a = 3;
(a % 2)? /*не четное*/: /*четное*/
0
slavich
13 / 13 / 2
Регистрация: 25.10.2009
Сообщений: 32
04.02.2011, 23:52 13
люди не пойму зачем использовать оператор %, если лучше &.Например в 8086 операция 'и' - не менше 3 тактов, операция деления ('div') - не менше 90 тактов.Помойму мой вариант оптимальный(особенно если надо находить много четных или нечетных чисел).
1
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
05.02.2011, 02:42 14
Цитата Сообщение от slavich Посмотреть сообщение
люди не пойму зачем использовать оператор %, если лучше &.Например в 8086 операция 'и' - не менше 3 тактов, операция деления ('div') - не менше 90 тактов.Помойму мой вариант оптимальный(особенно если надо находить много четных или нечетных чисел).
для новичков проще %
0
ForEveR
В астрале
Эксперт С++
8012 / 4769 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.02.2011, 03:53 15
slavich, Да и разницы сейчас в скорости существенной это не даст.
0
no0ker
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
05.02.2011, 10:51 16
а мне нравится вариант slavish. просто, оригинально, быстро.
0
Петр91
5 / 5 / 1
Регистрация: 17.05.2010
Сообщений: 108
14.06.2011, 09:59 17
Есть число типа double. Необходимо округлить его до двух знаков после запятой, и сделать его дробную часть четным. т.е 1.96 1.98 2 2.02 2.04 как решить сию проблему?
0
Phlake
0 / 0 / 0
Регистрация: 03.03.2017
Сообщений: 1
03.03.2017, 23:00 18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//Полный код, кому нужно разбирайте ;)
 
#include <iostream>
using namespace std;
void main() {
    setlocale(LC_ALL, "ukr");
    int a;
    cout << ("-Введите число:");
    cin >> a;
    if (a % 2 == 0)
    {
        cout << ("-Ето чётное число \n");
    }
    else
    {
        cout << ("-Ето Нечётное число \n");
    }
    system("pause");
}
0
03.03.2017, 23:00
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2017, 23:00

Проверка чисел на чётность или наоборот, дальнейший вывод
Написать программу, в которой вводятся 3 числа: А,В,С. Если среди них имеется хотя бы одно четное...

Чётные и нечётные числа: определить чётность числа, введённого пользователем с клавиатуры
Пользователь вводит с клавиатуры число. Вывести на экран Y, если число четное и N, если число не...

Определить чётность числа
Кто чем может Зачет скоро, а все сам сделать не успеваю. Все задания этого пункта нужно...


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

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

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