Задания для самостоятельного выполнения
Напишите программу, решающую Вашу задачу двумя способами: с помощью цикла и с помощью рекурсии.
Требования и ограничения
В программе, помимо main()
, должны присутствовать две функции - рекурсивная и с циклом (циклами). Результаты их работы должны совпадать. Использовать глобальные переменные запрещено.
Пример
Написать программу, вычисляющую факториал числа n
.
#include <stdio.h>
unsigned int fr(unsigned int n)
{
return n ? fr(n - 1u) * n : 1u;
}
unsigned int fl(unsigned int n)
{
unsigned int i, res = 1u;
for (i = 2u; i <= n; i++)
res *= i;
return res;
}
int main ()
{
unsigned int n;
printf("Factorial of n\nn -> ");
scanf("%u", &n);
printf("Cycle: n! = %u\nRecursion: n! = %u\n", fl(n), fr(n));
return 0;
}
Результаты работы программы
Factorial of n
n -> 8
Cycle: n! = 40320
Recursion: n! = 40320
Варианты заданий
- Найти n-ое число последовательности Фибоначчи.
- Вывести на экран десятичное целое неотрицательное число, используя только
printf("%u", x)
, гдеx
может принимать значения от 0 до 9 (вывод одноразрядного числа). - Определить, является ли заданное натуральное число простым.
- Найти количество цифр заданного неотрицательного целого числа.
- Возвести число в целую положительную степень.
- Найти среднее арифметическое цифр целого неотрицательного числа.
- Найти наибольший общий делитель (НОД) двух натуральных чисел. НОД двух чисел - наибольшее число, на которое оба эти числа делятся без остатка.
- Записать заданное неотрицательное целое число наоборот.
- Найти наименьшее общее кратное (НОК) двух натуральных чисел. НОК двух чисел - наименьшее число, которое делится без остатка на оба эти числа.
- Написать функцию умножения двух чисел, используя только сложение.
- Определить, является ли число точной степенью двойки.
- Написать функцию сложения двух чисел, используя только прибавление единицы.