Переделать рекурсию так, чтобы был счетчик и использовался тип static - C (СИ)
Формулировка задачи:
Есть рекурсия, было сказано ее переделать так, чтобы был счетчик и использовать тип static. Не понимаю что от меня хотят, могу переделать чтобы оно там формально присутствовало, но смысл этого преобразования от меня ускользает. Что это дает и как это сделать так, чтобы смысл не потерялся?
Вот это то, что у меня уже написано.
h=(double)(b-a)/n; res=0; for (int i=1; i<=n; i++;) res=res+func(i); res=res*h;
double func(double a, double h, int i) { double vl; vl=(double)(a+(i-0,5)h)/((1+(a+(i-0,5)h))*(1+(a+(i-0,5)h))); return vl; }
Решение задачи: «Переделать рекурсию так, чтобы был счетчик и использовался тип static»
textual
Листинг программы
/*Описать рекурсивную функцию count_digits(s) целого типа, находящую количество цифр в строке S без использования оператора цикла. С помощью этой функции найти количество цифр в данных пяти строках. */ int count_digits(char* s){ static int count=0; if (isdigit(*s)) count++; if (*s=='\0') return count; return count_digits(++s); }
Объяснение кода листинга программы
- Переменная
count
инициализируется значением 0. - Функция проверяет, является ли первый символ строки
s
цифрой. Если да, то значение переменнойcount
увеличивается на 1. - Если первый символ строки
s
равен нулю (что означает, что мы достигли конца строки), то функция возвращает значение переменнойcount
. - В противном случае, функция вызывает саму себя, передавая в качестве аргумента адрес следующего символа в строке
s
(что достигается путем увеличения указателяs
на 1).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д