Esercizio 2
Scrivi un metodo ricorsivo chiamandolo sd() che accetta un numero positivo intero n dispari e restituisce la somma di interi dispari da 1 a n.
#include<iostream>
using namespace std;
int sd(int n,int x, int sum){
sum=sum+x;
//cout<<x<<" "<<sum<<endl;
if(x<n){
x=x+2;
sum=sd(n,x,sum);
}//if
return sum;
}//sd
main(){
cout<<sd(5,1,0);
}//main
Per questioni di opportunità abbiamo costruito la funzione sd() in modo
che possa eventualmente partire da due numeri interi dispari n ed x con
n>x nel nostro caso particolare il numero dispari minore partirà con
valore zero, mentre in tutti i casi il valore iniziale della somma sum sarà
zero.
Il prototipo della funzione è dunque int sd(int n,int x, int sum) .
Nel corpo della funzione viene incrementato il valore di sum del valore
di x; poi viene verificato se il nuovo valore di x è x<n in caso affermativo
la funzione invoca se stessa con la medesima segnatura iniziale e con i
nuovi valori di x e di sum.
Nella versione illustrata manca la routine preventiva per verificare la
condizione iniziale n>x.