Нахождение суммы всех непарных чисел в диапазоне от 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д