Упражнения C: последовательность града заданного числа до 1
С Рекурсия: Упражнение 18 с решением
Напишите программу на C, чтобы найти последовательность града заданного числа до 1.
Пример решения:
Код C:
#include <stdio.h>
// function to generate next number
int getNextValue(int aNum)
{
int i = aNum;
if (i % 2 == 0)
{
i = i/2;
}
else
{
i = 3 * i + 1;
}
return (i);// returning the value of next number to the called function
}
// function to generate Hailstone number
void getHailstone(int aNum)
{
int hlSe = aNum;
if (hlSe == 1)
{
printf("%i ", hlSe);
}
else
{
printf(" %i ", hlSe);
getHailstone(getNextValue(hlSe));// calling the function itself recursively
}
}
// Function to count the length of the Hailstone sequence
int countLength(int aNum)
{
int hlSe = aNum;
if(hlSe == 1)
{
return 1;
}
else
{
return 1+countLength(getNextValue(hlSe));// calling the function itself recursively
}
}
int main(int argu)
{
int aNum;
printf("\n\n Recursion : Hailstone Sequence of a given number upto 1 :\n");
printf("--------------------------------------------------------------\n");
printf(" Input any number (positive) to start for Hailstone Sequence : ");
scanf("%i", &aNum);
printf("\n The hailstone sequence starting at %i is : \n", aNum);
getHailstone(aNum);
printf("\n\n");
printf(" The length of the sequence is %i. \n\n", countLength(aNum));
return 0;
}
Пример вывода:
Рекурсия: последовательность града заданного числа до 1: -------------------------------------------------- ------------ Введите любое число (положительное) для начала последовательности Hailstone: 13 Последовательность града, начинающаяся с 13: 13 40 20 10 5 16 8 4 2 1 Длина последовательности составляет 10
Блок - схема:
Редактор кода программирования C:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу на C, чтобы вычислить мощность любого числа, используя рекурсию.
Далее: написать программу на C для копирования одной строки в другую с помощью рекурсии.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code