Задать вопрос
22 июня, 20:45

Для заданного числа N распечатать числовую последовательность, в которой каждый следующий элемент последовательности определяется через предыдущий элемент р, и равен:

Вычисления прекратить, когда очередной элемент последовательности станет равен 1. (Известно, что в любой такой последовательности рано или поздно встречается 1).

Входные данные: Дано целое число N (1 ≤ N ≤ 100).

Выходные данные: В единственной строке вывести последовательность до 1.

Пример:

Входные данные

Выходные данные

7

7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

+2
Ответы (1)
  1. 23 июня, 00:02
    +1
    Буду считать что нечетные умножаются на 3 и прибавляется 1, четные делятся на 2

    i, k, n:integer;

    a:array[1 ... 10000] of integer;

    begin

    assign (input,'input. txt') ;

    reset (input) ;

    assign (output,'output. txt) ;

    rewrite (output) ;

    read (n) ;

    a[1]:=n;

    k:=1;

    while a[k]1 do

    if (a[k] div 2) = 0 then begin a[k]:=a[k] div 2; k:=k+1; end

    else begin a[k]:=a[k]*3+1; k:=k+1; end;

    for i:=1 to k do

    write (a[i],' ') ;

    end.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Для заданного числа N распечатать числовую последовательность, в которой каждый следующий элемент последовательности определяется через ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы