Recursivitat

Páginas: 3 (530 palabras) Publicado: 29 de octubre de 2013
Colors:

No recursiu
Recursiu

0. Donat un nombre enter, calcula la seva arrel digital.

int arrelDigital( int n) {
//Pre: n>=0
//Post: retorna l'arrel digital de n

if (n=10) {a=arrelDigital(n/10);
a=a+ (n%10);
if (a>=10) {
aux=arrelDigital((a/10));
aux=(a%10) + aux;
a=aux;}
}
return a;
}

1. Donat dos nombre enters, ens retorni la solució de la seva multiplicació russa

void i_multiplicacioRussa(int nombre1, int nombre2, int& suma, int&aux){
//Pre: n1=0; n2>=0;
//Post: retorna la multiplicacio russa de n1 i n2

if (nombre1>=1){
if (nombre1%2!=0) {
suma=suma+nombre1;
aux=aux+nombre2;}
i_multiplicacioRussa(nombre1/2.0,nombre2*2,suma,aux);
}
}

void multiplicacioRussa(int n1, int n2,int& aux){
//Pre: n1>=0 and n2>=0
//Post:= retorna lamultiplicacio russa de n1 i n2
int suma;
suma=0;
aux=0;
i_multiplicacioRussa(n1,n2,suma,aux);
}

2. Donat un enter positiu n, et retorni cert si és una potència de 2.

booli_esPotencia(int n,int e){
//Pre: n>=0 and e>=1
//Post: retorna cert si n = 2e ,altrament retorna fals

bool b;
if (((log10 (n))/e)log10 (2)) {
e++;
b=i_esPotencia(n,e);}
return b;
}

bool esPotencia (int n){
//Pre: n>=0
//Post: retorna cert si n és igual a 2e, altrament retorna fals.

bool b;
int exponent=1;b=i_esPotencia(n,exponent);
return b;
}

3. Funció que et retorni si un vector és capicua.

int invers(int n, int digits){
//Pre: n>=0 and digits>0
//Post: retorna l'invertit
int residu,quocient,cap,invertit;
if (n=0 and digits>=0
//Pst: em retorna el nombre de digits
if (tmp>=10){
tmp=tmp/10;
digits=digits*10;
i_digits(tmp,digits);
}
}...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS