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

Следующее четное - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
27.06.2011, 13:10     Следующее четное #1
Здравствуйте!


Помогите пожалуйста найти следующие четное число, нельзя использовать условную инструкцию if и циклы!!!

с if все легко:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "stdafx.h"
#include "fstream"
 
using namespace std;
 
int main()
{
    int x;
    ifstream in;
    ofstream out;
    in.open("input.txt");
    out.open("output.txt");
    in >> x;
 
        if (x % 2)
        {
        x = x + 1;
        }
        else 
        {
        x = x + 2;
        }
    
    out << x;
    in.close();
    out.close();
    return 0;
}
А как это сделать без условия!??

Спасибо!))
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2011, 13:10     Следующее четное
Посмотрите здесь:

sinlnb3b3 и следующее корень пятой степени, где под корнем b3+10 C++
Тип int. Как вывести следующее 050? C++
Как с текстовой строкой сделать следующее ? C++
Вычислить следующее выражение C++
C++ Прочитать следующее описание и определение
Для заданного натурального k и действительного x подсчитать следующее выражение C++
C++ По заданному набору чисел вывести следующее: A1, A22, , AN–1N–1, ANN
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
voral
362 / 342 / 46
Регистрация: 16.03.2008
Сообщений: 1,736
27.06.2011, 13:19     Следующее четное #2
что то типа
C
1
2
3
4
5
6
7
8
9
int k = x % 2;
switch (k)
{
case 0:
  /// четное
     break;
defaut:
    ;
}
Добавлено через 2 минуты
а проход по всем организвать рекурсией ....
grizlik78
Эксперт С++
 Аватар для grizlik78
1887 / 1419 / 103
Регистрация: 29.05.2011
Сообщений: 2,967
27.06.2011, 13:22     Следующее четное #3
Следующее чётное для целочисленного x:
C
1
x = x/2*2 + 2;
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
27.06.2011, 13:22  [ТС]     Следующее четное #4
Цитата Сообщение от Infinity3000 Посмотреть сообщение
нельзя использовать условную инструкцию if и циклы
а switch это цикл!
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
27.06.2011, 13:26     Следующее четное #5
Цитата Сообщение от Infinity3000 Посмотреть сообщение
а switch это цикл!
Не знал, что switch - это цикл..
grizlik78
Эксперт С++
 Аватар для grizlik78
1887 / 1419 / 103
Регистрация: 29.05.2011
Сообщений: 2,967
27.06.2011, 13:27     Следующее четное #6
nameless, да успокойся, не цикл это Но всё-равно он здесь не нужен.
voral
362 / 342 / 46
Регистрация: 16.03.2008
Сообщений: 1,736
27.06.2011, 13:31     Следующее четное #7
А, понял. Почему то решил, что нужно найти в последовательности чисел...
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
27.06.2011, 13:32  [ТС]     Следующее четное #8
Спасибо!)
OcbMuHor
Заблокирован
27.06.2011, 13:32     Следующее четное #9
Цитата Сообщение от grizlik78 Посмотреть сообщение
Помогите пожалуйста найти следующие четное число
Числовая прямая или просто случайное множество разных чисел? Надо найти только одно (следующее за чем?) четное число?
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
27.06.2011, 13:35     Следующее четное #10
мой вариант
C++
1
2
n += 2;
n -= n % 2;
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
27.06.2011, 13:43  [ТС]     Следующее четное #11
Цитата Сообщение от OcbMuHor Посмотреть сообщение
Числовая прямая или просто случайное множество разных чисел? Надо найти только одно (следующее за чем?) четное число?
В *.txt файле записано число, например 17, нужно было найти следующее за ним четное число, соответственно 18!

если в *.txt файле было 16, то тоже должно было вывести 18!)

вот решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include "fstream"
 
using namespace std;
 
int main()
{
    int x;
    ifstream in;
    ofstream out;
    in.open("input.txt");
    out.open("output.txt");
    in >> x;
 
        x = x/2*2 + 2;
    
    out << x;
    in.close();
    out.close();
    return 0;
}
всем спасибо!)))
voral
362 / 342 / 46
Регистрация: 16.03.2008
Сообщений: 1,736
27.06.2011, 13:44     Следующее четное #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Еще вариант
C
1
cout << (x | 1) +1;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2011, 13:47     Следующее четное
Еще ссылки по теме:

C++ Что означает следующее выражение?
Указатель: что означает следующее объявление? C++
C++ Объясните как реализовать следующее условие?
В заданном массиве вывести следующее минимальное число после нуля C++
C++ Выведите четное число, следующее после заданного

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

Или воспользуйтесь поиском по форуму:
grizlik78
Эксперт С++
 Аватар для grizlik78
1887 / 1419 / 103
Регистрация: 29.05.2011
Сообщений: 2,967
27.06.2011, 13:47     Следующее четное #13
Эх, гулять, так гулять!
C
1
2
x &= -2;
x += 2;
Yandex
Объявления
27.06.2011, 13:47     Следующее четное
Ответ Создать тему
Опции темы

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