разработать рекурсивную функцию, не возвращающую значений:
даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения n-го члена и суммы n первых членов прогрессии. Сделать в C++ подробно и с пояснениями, пожалуйста
                        
                            
                            
                    Ответы
                                            Ответ дал: 
                                                                                    
                                        
                                            
                                                
                                                
                                                
                                                    0
                                                
                                            
                                        
                                    
                                        #include <iostream>
using namespace std;
void arithmeticProgression(const int& first, const int& differense, const int& N){
// first - первый номер арифметической прогрессии
// difference - разность
// N - число, до которого продолжать прогрессию
static int sum = 0; // тут будет сумма
static int callsNumber = 0; // считаем число вызовов функции для определения номера элемента последовательности
int next = first + differense; // следующий элемент прогрессии
sum += first; // подсчет суммы
if(callsNumber == N){
cout << "finally item: " << first << endl;
cout << "sum: " << sum << endl;
sum = 0;
callsNumber = 0;
return; // если следующий элемент идет по порядку больше N, то прервать рекурсию
}
else{
callsNumber++;
arithmeticProgression(next, differense, N); // иначе делать тоже самое со следующим числом прогрессии
}
}
int main(){
arithmeticProgression(2, 3, 3); // пример вызова
return 0;
}
                                    
                                        
                                        
                                using namespace std;
void arithmeticProgression(const int& first, const int& differense, const int& N){
// first - первый номер арифметической прогрессии
// difference - разность
// N - число, до которого продолжать прогрессию
static int sum = 0; // тут будет сумма
static int callsNumber = 0; // считаем число вызовов функции для определения номера элемента последовательности
int next = first + differense; // следующий элемент прогрессии
sum += first; // подсчет суммы
if(callsNumber == N){
cout << "finally item: " << first << endl;
cout << "sum: " << sum << endl;
sum = 0;
callsNumber = 0;
return; // если следующий элемент идет по порядку больше N, то прервать рекурсию
}
else{
callsNumber++;
arithmeticProgression(next, differense, N); // иначе делать тоже самое со следующим числом прогрессии
}
}
int main(){
arithmeticProgression(2, 3, 3); // пример вызова
return 0;
}
                                            Ответ дал: 
                                                                                    
                                        
                                            
                                                
                                                
                                                
                                                    0
                                                
                                            
                                        
                                    
                                        Главная фича - использовать статическую переменную для подсчета суммы, так как она сохраняет свое значение между вызовами функции. Минус в этом - функцию можно вызвать только один раз.
                                    
                                        
                                        
                                
                                            Ответ дал: 
                                                                                    
                                        
                                            
                                                
                                                
                                                
                                                    0
                                                
                                            
                                        
                                    
                                        Если захочешь больше раза вызывать, то обнуляй сумму перед выходом из рекурсии (т.е. перед return)
                                    
                                        
                                        
                                
                                            Ответ дал: 
                                                                                    
                                        
                                            
                                                
                                                
                                                
                                                    0
                                                
                                            
                                        
                                    
                                        изменил ответ, т.к. обратил внимание на требование суммы по N-ому члену прогрессии, а не до числа N
                                    
                                        
                                        
                                Вас заинтересует
                
                        2 года назад
                    
                
                        3 года назад
                    
                
                        3 года назад
                    
                
                        9 лет назад
                    
                
                        10 лет назад
                    
                
                        10 лет назад