• Для заданного числа 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

     

Ответы 1

  • буду считать что нечетные умножаются на 3 и прибавляется 1, четные делятся на 2i, k, n:integer;a:array[1..10000] of integer;beginassign(input,'input.txt');reset(input);assign(output,'output.txt);rewrite(output);read(n);a[1]:=n;k:=1;while a[k]<>1 doif (a[k] div 2)=0 then begin a[k]:=a[k] div 2; k:=k+1; endelse begin a[k]:=a[k]*3+1; k:=k+1; end;for i:=1 to k dowrite(a[i],' ');end.
    • Автор:

      reilly
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years