Functii 1

1. Să se găsească valoarea termenului al n-lea din șirul lui Fibonacci.

F(0)=0; F(1)=1;F(n)=F(n-1)+F(n-2).

#include<iostream.h>

long int n;

int f(int n)

{

if(n==0) return 0;

else if(n==1) return 1;

                else return f(n-1)+f(n-2);

}

void main()

{

cout<<"n=";cin>>n;

cout<<"f("<<n<<")="<<f(n)<<endl;

}

 

2. Să se afișeze suma primelor n numere naturale.

Se observă că pentru n=0 suma este 0 – condiția de oprire. Pentru oricare ar fi n număr natural suma primelor n elemente este suma primelor n-1 elemente la care se adaugă n. s(n)=s(n-1)+n.

#include<iostream.h>

long int n;

int s(int n)

{

if(n==0) return 0;

                else return s(n-1)+n;

}

void main()

{

cout<<"n=";cin>>n;

cout<<"s("<<n<<")="<<s(n)<<endl;

}

 

 

3. Să se afișeze produsul numerelor pare dintre 1 și n.

Pentru n=0 produsul este 1 (0!=1). Dacă n este număr par produsul se obține în funcție de produsul numerelor de la 1..n-1 la care se înmulțește n. Dacă numărul n este impar valoarea produsului nu se schimbă.

#include<iostream.h>

long int n;

int s(int n)

{

if(n==0) return 1;

                else if(n%2==0)return s(n-1)*n;

                                else return s(n-1);

}

void main()

{

cout<<"n=";cin>>n;

cout<<"s("<<n<<")="<<s(n)<<endl;

}

 

4. Care este al n-lea termen al șirului s(n)=0 dacă n=0; s(n)=(2n-1)+s(n-1) pentru n>0 ?

#include<iostream.h>

long int n;

int s(int n)

{

if(n==0) return 0;

                                else return s(n-1)+2*n+1;

}

void main()

{

cout<<"n=";cin>>n;

cout<<"s("<<n<<")="<<s(n)<<endl;

}

 

5. Se citesc de la tastatură două numere a și n. Cât este valoarea lui a la puterea n?

#include<iostream.h>

long int n;int a;

int s(int a,int n)

{

if(n==0) return 1;

                                else return s(a,n-1)*a;

}

void main()

{

cout<<"n=";cin>>n;

cout<<"a=";cin>>a;

cout<<s(a,n)<<endl;

}

 

6. Găsiți al n-lea termen al șirului definit în felul următor: a(0)=1, a(n+1)=1+a(n)*a(n) dacă n>=1.

#include<iostream.h>

long int n;

int a(int n)

{

if(n==0) return 1;

                                else return a(n-1)*a(n-1)+1;

}

void main()

{

cout<<"n=";cin>>n;

cout<<a(n)<<endl;

}

 

7. Să se afișeze suma cifrelor dintr-un număr natural citit de la tastatură.

#include<iostream.h>

long int n;

int s(int n)

{

if(n==0) return 0;

                else return s(n/10)+n%10;

 

}

void main()

{

cout<<"n=";cin>>n;

cout<<s(n)<<endl;

}

 

8. Să se afișeze numărul cifrelor impare dintr-un număr care se citește de la tastatură.

#include<iostream.h>

long int n;

int s(long int n)

{

if(n==0) return 0;

                else if ((n%10)%2==1)return s(n/10)+1;

                                else return s(n/10);

 

}

void main()

{

cout<<"n=";cin>>n;

cout<<s(n)<<endl;

}

 

9. Să se afișeze cmmdc(a,b). a și b se citesc de la tastatură.

#include<iostream.h>

long int a,b;

long int cmmdc(long int a, long int b)

{

if(a==b) return a;

                if(a>b) return cmmdc(a-b,b);

                else return cmmdc(a,b-a);

 

}

void main()

{

cout<<"a=";cin>>a;

cout<<"b=";cin>>b;

cout<<cmmdc(a,b)<<endl;

}

 

10. Să se afișeze cmmdc dintre n numere citite de la tastatură.

#include<iostream.h>

long int a[100];

int n;

long int cmmdc(long int a, long int b)

{

if(a==b) return a;

                if(a>b) return cmmdc(a-b,b);

                else return cmmdc(a,b-a);

 

}

void citire()

{cout<<"n=";cin>>n;

for(int i=1;i<=n;i++)

 {cout<<"a["<<i<<"]=";cin>>a[i];}

}

void cmmdc_n()

{

int m;

m=cmmdc(a[1],a[2]);

for (int i=3;i<=n;i++)m=cmmdc(m,a[i]);

cout<<"cmmdc_n="<<m<<endl;

}

void main()

{

citire();

cmmdc_n();

}

 

11. Se citesc de la tastatură n numere. Să se afișeze suma numerelor strict positive.

#include<iostream.h>

long int a[100];

int n;

void citire()

{cout<<"n=";cin>>n;

for(int i=1;i<=n;i++)

 {cout<<"a["<<i<<"]=";cin>>a[i];}

}

int s(int n)

{

if(n==0)return 0;

                else if(a[n]>0) return s(n-1)+a[n];

                                else return s(n-1);

 

}

void main()

{

citire();

cout<<s(n)<<endl;

}

 

12. Se citesc de la tastatură n numere. Să se afișeze numărul de numere pare din șir.

#include<iostream.h>

long int a[100];

int n;

void citire()

{cout<<"n=";cin>>n;

for(int i=1;i<=n;i++)

 {cout<<"a["<<i<<"]=";cin>>a[i];}

}

int c(int n)

{

if(n==0)return 0;

                else if(a[n]%2==0) return c(n-1)+1;

                                else return c(n-1);

 

}

void main()

{

citire();

cout<<c(n)<<endl;

}

counter for wordpress

View My Stats