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