edutecnica

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.