Задания для самостоятельного выполнения

Напишите программу, решающую Вашу задачу двумя способами: с помощью цикла и с помощью рекурсии.

Требования и ограничения

В программе, помимо 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

Варианты заданий

  1. Найти n-ое число последовательности Фибоначчи.
  2. Вывести на экран десятичное целое неотрицательное число, используя только printf("%u", x), где x может принимать значения от 0 до 9 (вывод одноразрядного числа).
  3. Определить, является ли заданное натуральное число простым.
  4. Найти количество цифр заданного неотрицательного целого числа.
  5. Возвести число в целую положительную степень.
  6. Найти среднее арифметическое цифр целого неотрицательного числа.
  7. Найти наибольший общий делитель (НОД) двух натуральных чисел. НОД двух чисел - наибольшее число, на которое оба эти числа делятся без остатка.
  8. Записать заданное неотрицательное целое число наоборот.
  9. Найти наименьшее общее кратное (НОК) двух натуральных чисел. НОК двух чисел - наименьшее число, которое делится без остатка на оба эти числа.
  10. Написать функцию умножения двух чисел, используя только сложение.
  11. Определить, является ли число точной степенью двойки.
  12. Написать функцию сложения двух чисел, используя только прибавление единицы.