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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.95
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
#1

Проверить, делится ли число на 2 - C++

24.02.2010, 22:44. Просмотров 2722. Ответов 14
Метки нет (Все метки)

есть определение: Число делится на 2 тогда и только тогда, когда его последняя цифра делится на 2, то есть является чётной.

как это записать на c++?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2010, 22:44     Проверить, делится ли число на 2
Посмотрите здесь:
C++ Проверить гипотезу: если сумма цифр числа делится на 3, то и само число делится на 3
Как проверить, что число делится нацело C++
C++ Проверить делится ли число нацело с помощью машины тьюринга
Как проверить, делится ли одно число на другое нацело? C++
Проверить, делится ли без остатка заданное натуральное число на каждую из своих цифр C++
C++ Найти натуральное число M такое, что M делится на N и сумма цифр M делится на N
C++ Если а делится на b или b делится на а, то вывести 1, иначе— любое другое число
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
24.02.2010, 22:46     Проверить, делится ли число на 2 #2
а почему просто не написать?
C++
1
2
3
int x = 124;
if(x%2 == 0)
// число делится на 2, то есть четное
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.02.2010, 23:00     Проверить, делится ли число на 2 #3
Ну если прямо так дословно:
C
1
2
if((X%10)%2==0)
// значит делится
easybudda
Эксперт CЭксперт С++
9470 / 5483 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
24.02.2010, 23:04     Проверить, делится ли число на 2 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <windows.h>
 
int main(){
    int num;
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    while ( true ){
        std::cout << "Число: ";
        std::cin >> num;
        if ( !num )
            break;
        std::cout << "Число " << num << ( num & 1 ? " не " : " " ) << "делится на 2 без остатка" << std::endl;
    }
    
    return 0;
}
keXss
Сообщений: n/a
24.02.2010, 23:09     Проверить, делится ли число на 2 #5
if(x%2==0)
printf("делится");
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.02.2010, 01:24  [ТС]     Проверить, делится ли число на 2 #6
а вот такой код эффективный?
C++
1
2
3
if ( (x % 10) & 1 )
    return 0;
    return 1;
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
25.02.2010, 01:33     Проверить, делится ли число на 2 #7
PointsEqual, это немного извращенный вариант того что предложил easybudda, ведь число, к примеру, 124 == 1111100
Остаток от деления на 10 равен 4 == 100
value &1 - проверка младшего бита, поэтому то отсечение последней цифры - пустая трата времени, ведь вы все равно проверяете только самый младший бит, т.е. последний 0
Вот это более правильно
C++
1
2
3
4
if ( x & 1 )
    return 0;
else
    return 1;
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.02.2010, 01:42  [ТС]     Проверить, делится ли число на 2 #8
M128K145, до меня дошло) спасибо

Добавлено через 53 секунды
то есть код easybudda самый эффективный?
easybudda
Эксперт CЭксперт С++
9470 / 5483 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
25.02.2010, 01:45     Проверить, делится ли число на 2 #9
Цитата Сообщение от M128K145 Посмотреть сообщение
C++
1
2
3
4
if ( x & 1 ) 
    return 0; 
else 
    return 1;
или
C
1
return !( x & 1 );
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.02.2010, 01:48  [ТС]     Проверить, делится ли число на 2 #10
Цитата Сообщение от M128K145 Посмотреть сообщение
if ( x & 1 )
return 0;
else
return 1;
и вот после ретурн 0 обязательно else ставить? ведь если условие ложно то ретурн 0 и выход, а если нет то просто следующая строчка, тоесть ретурн 1.
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
25.02.2010, 02:01     Проверить, делится ли число на 2 #11
Цитата Сообщение от PointsEqual Посмотреть сообщение
то есть код easybudda самый эффективный
Да
PointsEqual, для читаемости кода все же лучше ставить, учитывая то выравнивание, с которым вы выложили эти три строки
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.02.2010, 02:04  [ТС]     Проверить, делится ли число на 2 #12
понятно. Я просто попытался внести свой вклад в википедию)) и занес тутда свой код, ---сказали руки оторвали бы за такое.
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
25.02.2010, 04:21     Проверить, делится ли число на 2 #13
есть определение: Число делится на 2 тогда и только тогда, когда его последняя цифра делится на 2, то есть является чётной.
Это не определение.
Это теорема.
И работает она не во всех системах счисления.
Определение же такое (примерно)
Число делится на 2 тогда и только тогда, когда оно делится на 2 без остатка
А теорема выглядит примерно так:
Для любого простого P в позиционной системе счисления с основанием n*P число делится на P
тогда и только тогда, когда последняя его цифра делится на P
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.02.2010, 04:43     Проверить, делится ли число на 2 #14
Цитата Сообщение от PointsEqual Посмотреть сообщение
есть определение: Число делится на 2 тогда и только тогда, когда его последняя цифра делится на 2, то есть является чётной. как это записать на c++?
Согласно этому определению, двоичное число делится на 2, если его последняя цифра 0:
C++
1
return ((x&0x01)==0);
. Если же ты хочешь анализировать именно десятичную запись числа, то:
C++
1
return (((x%10)==0)|((x%10)==2)|((x%10)==4)|((x%10)==6)|((x%10)==8));}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2010, 10:25     Проверить, делится ли число на 2
Еще ссылки по теме:
Если a делится на b или b делится на a, то вывести 1, иначе – любое другое число C++
C++ Дано целое число N. Найдите все такие целые числа d, что N делится на d2 и не делится на d3.
C++ Число делится на 11, если разность между суммой цифр на четных и нечетных местах делится на 11
Найти ближайшее к данному число, которое делится на 3, но не делится на 2. C++
C++ Найти ближайшее число,которое делится на 3, но не делится на 2

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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
25.02.2010, 10:25     Проверить, делится ли число на 2 #15
Цитата Сообщение от taras atavin Посмотреть сообщение
C++
1
return (((x%10)==0)|((x%10)==2)|((x%10)==4)|((x%10)==6)|((x%10)==8));
Почему битовое или? Должно быть логическое
Yandex
Объявления
25.02.2010, 10:25     Проверить, делится ли число на 2
Ответ Создать тему
Опции темы

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