Вопрос по информатике:
Помогите пожалуйста,написать программу в паскале!!1
Решить задачу с использованием процедур. Указать выделенные подзадачи, решаемые процедурами.
Последовательность Хейеса. Дано натуральное число n (n > 1). Если оно чётно, то его делят на 2, иначе умножают на 3 и прибавляют 1. Если полученное число не равно 1, то действия повторяются до тех пор, пока не получится 1. Вершиной называют наибольшее число в получающейся последовательности. Для заданного n построить указанную последовательность, указать её вершину и количество шагов
- 20.02.2018 01:41
- Информатика
- remove_red_eye 648
- thumb_up 42
Ответы и объяснения 1
//Pascal ABC.NET 3.1 сборка 1219
Var
k,n,max:integer;
procedure hase(var k,n,max:integer); //сама последовательность
begin
if not(odd(n)) then n:=n div 2 else n:=n*3+1; //условие про чётность
writeln(n); //вывод нового члена последовательности
inc(k); //увеличение значения счётчика шагов
if max
procedure start(var k,n,max:integer); //название процедуры намекает
begin
readln(n);
k:=0;
writeln('Seq:');
max:=integer.MinValue;
while n1 do
hase(k,n,max);
writeln('Шаги:',k);
writeln('Вершина:',max);
end;
begin
start(k,n,max);
end.
Пример ввода:
6
Пример вывода:
Seq:
3
10
5
16
8
4
2
1
Шаги:8
Вершина:16
- 21.02.2018 08:27
- thumb_up 4
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.