Заменить циклы на рекурсию - C (СИ)
Формулировка задачи:
Помогите пожалуйста сделать рекурсию для циклов. Понятия не имею как она делается(
#include "stdafx.h" #include "conio.h" #include "locale.h" #include "math.h" int input();// Ввод N int input2();// Ввод x int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL,"Russian"); int N, i; double x, flag, S1, S2; N=input();// Ввод N x=input2();// Ввод x S1=sin(x); for(i=1; i<N; i++) { S1=S1*sin(x); } printf(" S1=%lf\n", S1); flag=x; for(i=1; i<N; i++) { flag=flag*x; } S2=sin(flag); printf(" S2=%lf\n", S2); _getch(); return 0; } int input()// Ввод N { int N; printf("\n Введите натуральное число N: "); scanf("%d", &N); return N; } int input2()// Ввод x { double x; printf("\n Введите вещественное число X: "); scanf("%lf", &x); return x; }
Решение задачи: «Заменить циклы на рекурсию»
textual
Листинг программы
#include "stdafx.h" #include "conio.h" #include "locale.h" #include "math.h" int input(); //ввод N double for4eg(int N); // вычисление P int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL,"Russian"); int N; N=input(); //ввод N for4eg(N); // вычисление P printf("\nОтвет: P = %lf", for4eg(N)); _getch(); return 0; } //ввод N int input() { int a; printf("Введите N:"); scanf("%d", &a); return a; } // вычисление P double for4eg(int N) { if (N==1) return (1.0 + 1.0/pow(double(N),1.0/4.0)); return (1.0 + 1.0/pow(double(N),1.0/4.0))*for4eg(N-1); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы.
- Объявляем функцию
input()
, которая считывает на вход N. - Объявляем функцию
for4eg(int N)
, которая вычисляет P. - В функции
main()
считываем N с помощью функцииinput()
. - Вызываем функцию
for4eg(N)
для вычисления P. - Выводим результат на экран с помощью функции
printf()
. - Ждем нажатия клавиши с помощью функции
_getch()
и завершаем программу. - В функции
input()
считываем на вход int, который является N. - В функции
for4eg(int N)
выполняется рекурсивный расчет P. - При N=1 возвращается 1.5.
- В противном случае, результат вычисления P для N-1 умножается на 1.5.
- Возвращаем результат.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д