Рекурсия. Вычислить наибольший общий делитель двух натуральных чисел - C (СИ)
Формулировка задачи:
1) S=a!-cos(a)
2) Вычислить наибольший общий делитель двух натуральных чисел
Решение задачи: «Рекурсия. Вычислить наибольший общий делитель двух натуральных чисел»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
int f(int x)
{
if(x == 1)
return 1;
else
return x*f(x-1);
}
main()
{
int x;
printf("Enter x:");
scanf("%d",&x);
printf("%.4lf",f(x)-cos(x));
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
и - Определяем функцию f(x) с одним аргументом типа int
- Если x равно 1, то возвращаем 1
- Иначе, возвращаем результат умножения x на f(x-1)
- В функции main() считываем значение переменной x с помощью scanf
- Выводим результат вычисления f(x) с помощью printf, добавляя символ %.4lf для указания вывода с плавающей точкой
- В результате вычисления f(x)-cos(x) получаем число, но для понимания сути кода, необходимо заметить, что функция f(x) вычисляет наибольший общий делитель (НОД) двух натуральных чисел, а функция cos(x) вычисляет косинус числа x.