recursivitate-

Material preluat de pe site-ul [|infoscience.3x.ro/c++/aplicatii_recursivitate.HTM]

Lisa probleme recursivitate 1. Sa se scrie o functie recursiva care afiseaza valorile de la 1 la n 2. Sa se scrie o functie recursiva care afiseaza valorile de la n la 1 3. Sa se scrie o functie recursiva care calculeaza n! 4. Sa se scrie o functie recursiva care calculeaza suma primelor n numere naturale 5. Sa se scrie o functie recursiva care calculeaza produsul a*b (ca fiind o adunare repetata) 6. Sa se scrie o functie recursiva care calculeaza a: b (ca fiind o scadere repetata ) 7. Sa se descompuna un numar in suma de doua numere: Ex 11 se descompune in: 1+10, 2+9, 3+8, 4+7, 5+6

8. Expresii: 1*2+2*3+3*4+4*5 1+3+5+7+… 1*4*7*10*… 2*4*6*8*…. 1x2+2x3+3x4+....+ nx (n+1) ½+2/3+3/4+......+n/(n+1) (1+2)x(2+3)x(3+4).....x(n+n+1)

9. Şirul lui Fibonacci. Se consideră şirul definit astfel: 0,1,1,2,3,5,8,13 u(7)=13

10. Se dau două numere naturale a şi b. Se cere să se calculeze cel mai mare divizor comun al lor.

11. Să se scrie o funcţie recursivă care afiseaza cifrele unui numar incepand de la unitati

N=1234

12. Să se scrie o funcţie recursivă pentru calculul sumei cifrelor unui număr natural. 13 . Să se scrie o funcţie recursivă pentru transformarea unui număr natural n, din baza 10 în baza k (1<k<10). 14 . Sa determine cifra cea mai mare a unui numar 15 . sa se determine suma cifrelor pare ale unui numar 16 . sa se numere cifrele unui numar 17 . sa se numere cifrele pare ale unui numar 18 . sa se numere de cate ori se gaseste cifra x intr-un numar 19 . sa se afiseze divizorii unui numar 20 . sa se determine suma divizorilor unui numar 21 . Sa se determine daca un numar este prim 22 . inversul unui numar 23. Sa se genereze primii n termeni ai unei progresii aritmetice (geometrice), daca se cunosc primul termen si ratia. 24. un subprogram recursiv care determina de cate ori se gaseste o cifra intr-un numar 25. Scrieti un subprogram recursiv pentru determinarea si afisarea valorilor din triunghiul lui Pascal pana la nivelul k. Amintim ca triunghiul lui Pascal este format din coeficientii binomului lui Newton (a+b)n, pentru n=1,2…k Exemplu: pentru k=5, triunghiul este: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 39. sa se afiseze o piramida de tipul: 1 2 2 3 3 3 4 4 4 4 etc

26. Pentru n dat, sa se construiasca recursiv triunghiul de numere de mai jos, fara a folosi nici o instructiune repetitiva. 1 1 2 ……………….. 1 2 3 ……….. n-1 1 2 3 ……….. n-1 n

27. Pentru n dat, sa se construiasca recursiv triunghiul de numere de mai jos, fara a folosi nici o instructiune repetitiva. 1 2 3 ……….. n-1 n 1 2 3 ……….. n-1 ……………….. 1 2 1 1. Pentru n dat, sa se construiasca recursiv triunghiul de numere de mai jos, fara a folosi nici o instructiune repetitiva. n n-1 n-2 …………..3 2 1 n n-1 n-2 …………..3 2 ……………….. n n-1 n 28 . un subprogram recursiv care determina daca o valoare se gaseste intr-un vector 29 . citirea, afisarea unui vector recursiv 30 . suma elementelor unui vector 31 . suma elementelor pare dintr-un vector 32. Sa se calculeze, recursiv, maximul elementelor dintr-un vector 33 .  Scrieti  o functie recursiva care afiseaza elementele unui vector in ordine inversa. 34 . Se da un vector x cu n componente numere naturale cu cel mult 9 cifre. Sa se afiseze suma cifrelor componentelor vectorului. 35 . suma elementelor de pe o coloana a unei matrici 36 .  afisarea  elementelor de pe diagonalele principala  si sec dintr-o matrice patratica 37 . *un cioban isi cumpara oi. stiind ca o oaie dupa un an face o mieluta si mieluta devine dupa un an mioara iar mioara devine dupa un an oaie, ce va contine turma ciobanului dupa n ani? Obs. Nu se nasc berbecuti si nici nu mor animale dupa un an: 1 oaie si o mileluta nici o mioara dupa doi ani: o oaie, o mieluta si o mioara dupa 3 ani: 2 oi,1 mioara, mielut 1 dupa 4 ani 3 oi, 1 mioara, 2 mieluti

38. O persoana are de coborat n trepte. La fiecare pas, el poate cobori 1 sau 2 trepte. Cate posibilitati are de a cobori scara? Exemplu: pentru n=12, exista 233 de posibilitati. 39. Sa se descompuna un numar in factori primi, folosind un algoritm recursiv. (Ex: 19344=23*3*13*31) 40. Numarul de partitii ale unei multimi cu n elemente in k submultimi este S(n,k), numit numarul lui Stirling de speta a II-a si este definit de relatiile : S(n,1)=S(n,n)=1 S(n+1,k)=S(n,k-1)+ kS (n,k) Sa se calculeze numarul partitiilor unei multimi cu n elemente in submultimi de k elemente. Exemplu: S(5,3)=25

41. Se da un vector cu n elemente intregi. Sa se verifice, folosind o functie recursiva, daca exista macar un element pozitiv in vector. 42. Fie sirul 1,2,2,3,3,3,… Gasiti o definitie recursiva a acestui sir si scrieti un program care o implementeaza. 43. Se considera ca diagonalele unei matrice patratice o impart pe aceasta in 4 zone: nord, sud, est si vest. Scrieti cate o functie recursiva pentru a calcula: a. Suma elementelor din nord b. Produsul elementelor din vest c. Numarul de elemente pare din sud d. Procentul de zerouri din est 44. Scrieti un program care descompune un numar dat n ca suma de puteri distincte ale lui 2. Indicatie : Se va folosi o functie care determina cea mai mare valoare p cu proprietatea ca 2p<=n Exemplu: n=4978 se obtine descompunerea 21+24+25+26+28+29+212 45. Sa se completeze in spirala, folosind un algoritm recursiv, o matrice cu n linii si n coloane, cu primele n2 numere intregi. Exemplu: pentru n=4 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 46. Din numarul 4 se poate obtine orice numar natural N scris in baza 10 prin aplicarea urmatoarelor operatii : a. Se scrie la sfarsit cifra 4 b. Se adauga la sfarsit cifra 0 c. Daca numarul este par, se imparte la 2 Sa se scrie un program care produce un sir de numere construit conform regulilor precedente, sir in care primul numar este 4 iar ultimul este N. Exemplu: pentru N=7024, secventa este: 4 à 2 à 1 à 14 à 140 à 1404 à 702 à 7024. Indicatie : Sirul se va genera invers, de la N la 4, aplicand transformarile inverse. 47. Fie sirul 1,2,3,4,5,10,20,40,80,… ai carui termeni, incepand cu al saselea, satisfac relatia a[i]=a[i-1]*2. Sa se scrie un algoritm recursiv care descompune un numar pozitiv n ca suma de termeni distincti din sirul definit. Exemplu: pentru n=4578 se obtine descompunerea 3+5+10+80+640+1280+2560 48. Codul Fibonacci de ordinul n, n>=2, este secventa cn. Daca l este sirul nul, atunci codul Fobonacci se poate obtine recursiv astfel: c2=( l ), c3=(0,1), c4=(00,01,10) iar cn, n>4 se obtine prin concatenarea a doua subsecvente: prima secventa se obtine prefixand cu 0 fiecare codificare din cn-1, a doua prefixand cu 10 fiecare codificare din cn-2. Elaborati un algoritm care construieste codul lui Fibonacci pentru orice n dat. Exemplu: c5=(000,001,010,100,101) 49. Sa se verifice daca doua matrici sunt identice, folosind o functie recursiva. 50. Afisati tabla inmultirii cu x, folosind o functie recursiva.

[]