Нахождение суммы всех непарных чисел в диапазоне от 1 до 99 включительно - C (СИ)
Формулировка задачи:
с помощью рекурсивной функции составить программу нахождения суммы всех непарных чисел в диапазоне от 1 до 99 включительно.
Помогите пожалуйста
Вот как я решала:
В чём ошибка?
#include <stdio.h>
#include <conio.h>
double fn(int sum, int a)
sum=0;
a=1;
while(a<100)
{sum=sum+a;
a=a+2;
return fn(sum+a);
}
int main()
{
printf("sum=%d",sum);
_getch();
return 0;
}Решение задачи: «Нахождение суммы всех непарных чисел в диапазоне от 1 до 99 включительно»
textual
Листинг программы
#include <stdio.h>
double fn(int a, int b)
{
return b > a ? b + fn(a, b - 2) : 1;
}
int main()
{
double sum = fn(1, 99);
printf("sum=%lf",sum);
getchar();
return 0;
}
Объяснение кода листинга программы
В данном коде реализована рекурсивная функция fn, которая принимает два аргумента типа int - a и b. Если b больше a, то функция вызывает саму себя, передавая в качестве аргументов a и b - 2, и возвращает результат сложения b и полученного при рекурсивном вызове значения. Если b меньше или равно a, то функция возвращает единицу.
В функции main создаётся переменная sum, которая инициализируется значением, полученным при вызове функции fn с аргументами 1 и 99. Затем на экран выводится сообщение с значением переменной sum.
Код выполняет следующие действия:
- Рекурсивный вызов функции
fnс аргументами 1 и 99. - Результат рекурсивного вызова сохраняется в переменной
sum. - Вывод на экран значения переменной
sum.