1 / 1 / 0
Регистрация: 28.06.2016
Сообщений: 80
1

Итерационное преобразование числа

07.07.2016, 13:28. Показов 831. Ответов 4
Метки нет (Все метки)

На вход программе подается целое положительное число n. Если оно четное, делим на 2, если нечетное, то умножаем на 3 и прибавляем 1. С полученным числом делаем то же самое и так далее, пока не получим 1 (есть математическая недоказанная гипотеза Коллатца, которое утверждает, что при любом начальном числе всегда когда-нибудь да получится единица). Вам надо вывести последовательность всех промежуточных результатов до единицы.


Вход
5
7
2
1

Выход
5 16 8 4 2 1
7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
2 1
1


Огромное спасибо всем ответившим!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2016, 13:28
Ответы с готовыми решениями:

Итерационное вычисление частных производных
доброго времени суток в задачах по численным методам столкнулся с необходимостью вычисления...

Итерационное время стремится к нолю
Итерационное время в программе сортировки данных стремится к нолю. Это нормально или требуются...

Метод Дихотомии (итерационное вычисление нуля функции)
Считает сумму, но с ответом не сходится До какого момента нужно считать? #include...

Итерационное вычисление квадратного корня
По заданному вещественному x , вычислить значение \sqrt{x} по следующей итерационной форме ...

4
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
07.07.2016, 13:38 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
int main() {
 
    while (true) {
        int n;
        cin >> n;
        if (n < 0)
            break;
        cout << n;
        while (n != 1) {
            if (n % 2 == 0)
                n = n / 2;
            else
                n = n * 3 + 1;
            cout << " " << n;
        }
        cout << endl;
    }
    return 0;
}
0
4814 / 2274 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
07.07.2016, 19:19 3
C++
1
int f(int n) {std::cout<<n<<' '; return n==1 ? n : f(n%2 ? n*3+1 : n/2);}
0
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
07.07.2016, 19:25 4
_Ivana, В какой книге вы это прочитали?)
0
4814 / 2274 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
07.07.2016, 19:44 5
shilko2013, чукча не Reader, чукча Writer
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2016, 19:44
Помогаю со студенческими работами здесь

Преобразование десятичного числа в троичное, и деление этого числа на 2
преобразование десятичного числа в троичное число и деление этого числа на 2(как я понял...

Преобразование в числа
Добрый день! Подскажите пожалуйста, как можно сделать.. В функцию передается строка - fun(&quot;1/4&quot;)...

Преобразование числа
Дано натуральное число. От этого числа отнимем суму его цыфр. От нового числа опять отнимем суму...

Преобразование числа
Приветствую камрады. Есть такая задача. В результате определенных вычислений получаем десятичное...

Преобразование числа
Можно ли число преобразовать в такой формат, просто не знаю как это объяснить, если пишешь 12, то...

Преобразование числа
Задача заключается в том, чтобы убрать числа под нечетным номер из заданного числа. Вот мой код...


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

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

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