1 / 1 / 1
Регистрация: 09.04.2018
Сообщений: 78
1

Цикл деления пополам, пока есть возможность

15.04.2018, 12:51. Показов 3200. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне надо что-бы программа делила на 2 если четное и если не четное то вычитала 1 но она вытает или делит только 1 раз.Подскажите как сделать так чтобы делила до тех пор пока число не станет 0
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include<Windows.h>
 
using namespace std;
 
int main()
{
    int number = 1024;
    if (number % 2 == 0)
    {
        number = number / 2;
        cout << number << endl;
    }
    else
    {
        number = number - 1;
        cout << number << endl;
    }
    system("pause");
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2018, 12:51
Ответы с готовыми решениями:

Есть ли возможность выполнять цикл некоторое время
Существует ли в С++ возможность выполнять цикл,скажем,ровно 15 секунд,или таковой возможности нету?...

метод деления пополам
Люди помогите составить программу алгоритма метода деления пополам рекурсией на C/C++, для...

Метод деления пополам
плиз!!!подскажите!!! нам дана функция х*х-2=0,мы знаем отрезок на котором будем искать иксы,...

метод деления интервала пополам
помогите написать программку в вижуале у меня неполучается, нужно функцию на заданом интервале...

4
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
15.04.2018, 13:00 2
Лучший ответ Сообщение было отмечено DefaultDF как решение

Решение

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>
#include<Windows.h>
 
using namespace std;
 
int main()
{
    int number = 1024;
  while(number) {
    if (number % 2 == 0)
    {
        number = number / 2;
        cout << number << endl;
    }
    else
    {
        number = number - 1;
        cout << number << endl;
    }
  }
    system("pause");
}
Циклы еще не проходили?
1
223 / 188 / 97
Регистрация: 15.04.2018
Сообщений: 718
15.04.2018, 15:18 3
Цитата Сообщение от Байт Посмотреть сообщение
while(number)
Дополню, в такой интерпретации код верный, и тоже будет работать, но чтобы вопросов не было стоит указать:
C++
1
2
3
//code
while(number > 0) {
//code
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
15.04.2018, 20:43 4
mvngr, Может неправильно работать при отрицательных значениях number... Впрочем, при отрицательных значениях все равно будет зацикливание. (при вашем подходе зацикливания не будет, но результат будет неверным) Тут бы надо условие задачи слегка изменить...
2
223 / 188 / 97
Регистрация: 15.04.2018
Сообщений: 718
15.04.2018, 21:45 5
Цитата Сообщение от Байт Посмотреть сообщение
Может неправильно работать при отрицательных значениях number...
Дело ведь в том, что изначальное число нам уже известно из кода, а именно 1024
Цитата Сообщение от DefaultDF Посмотреть сообщение
int number = 1024;
Так что я не думаю, что там ожидаются отрицательные числа
1
15.04.2018, 21:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2018, 21:45
Помогаю со студенческими работами здесь

метод деления пополам вроде
не могу понять в чем ошибка... #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; main...

Метод деления отрезка пополам
Помогите!! Написать функцию,выполняющую поиск корня уравнения f(x)=0 методом деления отрезка...

Бинарный поиск деления пополам
Здравствуйте, не могу понять почему так: ввожу число 3 и ничего не выводится(со всеми остальными...

Поиск методом деления пополам.
Имеется железнодорожное расписание, содержащее номер рейса поезда, времена отправления и прибытия и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru