Если что-то не получилось — можно подсмотреть решение. Скорее всего на следующий день вы это решение забудете — так что это упражнение можно снова будет попытаться реализовать. Рекурсия довольно нетипичная для мозгов задача, так что не стесняйтесь повторять одно и тоже упражнение несколько раз. Варианты решений есть снизу.
- печать чисел от 1 до n
- печать четных/нечетных чисел до n
- возведение n в степень
- печать n! (факториал — произведение чисел до n)
- печать суммы чисел от n до m
- печать чисел Фибоначчи (каждое следующее — сумма двух предыдущих)
- печать чисел Коллатца (чётное: n/2; нечетное: n*3+1)
- копирования строки из одной в другую
- печать элементов массива
- печать строки наоборот
- конвертация десятичного числа в двоичное
- бинарный поиск
- сортировка «пузырьком»
- сортировка слиянием
Печать чисел от 1 до n при помощи рекурсии (вариант Штукенции)
// print numbers from 1 to n
#include <stdio.h>
#include <cs50.h>
int printn (int n);
int main (void)
{
int n = get_int ("Number: ");
printn (n);
}
int printn (int n)
{
if (n == 1)
{
printf ("%i\n", n);
return 0;
}
else
{
printn(n-1);
printf ("%i\n", n);
return 0;
}
return 0;
}
Печать четных / нечетных чисел до n (вариант Штукенции)
#include <stdio.h>
int number (int n_max);
int main (void)
{
int n_max;
printf("Max number: ");
scanf( "%d", &n_max);
int num = number(n_max);
return 0;
}
int number (num)
{
if (num == 0)
{
printf ("0\n");
return 0;
}
else
{
// print even numbers
if ((num % 2) == 0)
{
printf ("%i\n", num);
}
number (num - 1);
}
return 0;
}
