Перетворенння
Візьмемо деяке натуральне число N.
Будемо змінювати його наступним чином: якщо число парне, то розділимо його на 2,
якщо непарне, додамо 1. Після декількох
таких змін ми завжди отримаємо число 1. Наприклад, з
числа 11 отримується число 12,
потім 6, 3,4, 2 і, нарешті, 1.
Таким чином, для отримання 1 з 11 потрібно виконати 6 перетворень.
Напишіть програму, яка зчитує натуральне число і виводить
кількість перетворень даного числа до отримання 1.
Вхідні
дані
Число N (1 ≤ N ≤ 109).
Вихідні
дані
Кількість
перетворень.
Вхідні дані
11
Вихідні дані
6
program peretvorennia;
var a : 1..10000000000;
k : int64;
BEGIN
readln (a);
k:=0;
while a<>1 do begin
k:=k+1;
if odd(a) then a:=a+1 else
a:=a div 2;
end;
writeln (k);
END.
Немає коментарів:
Дописати коментар