SlideShare a Scribd company logo
1 of 7
problema 1:
/*1. Sa se scrie o functie recursiva care primeste 3 parametri: n - numar
natural, c1,c2 cifre si returneaza numarul obtinut din n prin inlocuirea tuturor
aparitiilor cifrei c1 cu c2.


*/
#include<iostream>
using namespace std;
int inlocuire(int n, int c1, int c2)
{
    if(n!=0)

    {
        if(n%10==c1)
              return inlocuire(n/10,c1,c2)*10 + c2;
        return inlocuire(n/10,ci,c2)*10 + n%10;
    }
    return 0;
}
int main()
{
    cout<<inlocuire(5446,4,7);
}

problema 2:
/* 2. Sa se scrie o functie recursiva care primeste un parametru n numar natural
si returneaza numarul obtinut din n prin eliminarea cifrelor pare.

*/
#include<iostream>
using namespace std;
int f(int n)
{
      if(n==0)
            return 0;
      if(n)
      {
            if(n%10%2==0)
                  return f(n/10);
            else
                  return f(n/10)*10+n%10;
      }
      return 0;
}
int main()
{
      int n;
      cin>>n;
      cout<<f(n);
      return 0;}



problema 3:
/* 3. Se citeste un vector a cu n elemente numere naturale. Sa se calculeze
elementul maxim din vector. Se va folosi o functie recursiva pentru citire si
una recursiva pentru determinarea elementului maxim.

*/
#include<iostream>
using namespace std;
int citire(int v[100], int n)
{
      if(n>0)
            cin>>v[n];
      if(n)
            return citire(v,n-1);
      else
            return 0;
}
int maxim(int v[100],int n, int max)
{
      if(n>0)
      {
            if(v[n]>max)
                  max=v[n];
            return maxim(v,n-1,max);
      }
      else
            cout<<max;
}
int main()
{
      int a[100],nr,max1=0;
      cin>>nr;
      citire(a,nr);
      maxim(a,nr,max1);
}


problema 8:
/* 8. Se da un vector cu ,n componente de numere întregi. Se cere sa se afi?eze
câte dintre elementele vectorului sunt mai mici decât media aritmetica a
componentelor acestuia.

*/
#include<iostream>
using namespace std;
int main()
{
      int n,v[200],i,ma=0,nrelemmici=0;
      cin>>n;
      for(i=0;i<n;i++)
      {
            cin>>v[i];
      }
      for(i=0;i<n;i++)
      {
            ma=ma+v[i];
      }
      ma=ma/n;
      for(i=0;i<n;i++)
      {
            if(v[i]<ma)
                  nrelemmici++;
      }
      cout<<"sunt atatea elem mai mici:"<<nrelemmici;

}




/* 10. Scrieti toate numerele cuprinse între 1000 si 3000 care au doua cifre
zero si suma tuturor cifrelor egala cu patru. Câte astfel de numere sunt? Care
este numarul cel mai mic si care este numarul cel mai mare?

*/
#include<iostream>
using namespace std;
int nrcifrezero( int n)
{
      int i=0;
      while(n)
      {
            if(n%10==0)
                  i++;
            n=n/10;
      }
      return i;
}
int sumcif(int n)
{
      int sum=0;
      while(n)
      {
            sum=sum+n%10;
            n=n/10;
      }
      return sum;
}
int main()
{
      int i;
      for(i=1000;i<3001;i++)
      {
            if(nrcifrezero(i)==2 && sumcif(i)==4)
                  cout<<i<<" ";
      }

}


11.
/* 11. Sa se afiseze toate numerele cuprinse între 100 si 599, având cifrele în
ordine crescatoare si suma celor trei cifre egala cu 18.

*/
#include <iostream>
using namespace std;
int main ()
{
      int i,a,b,c;
      for(i=100;i<=599;i++)
      {
            a=i/100;
            b=i/10%10;
            c=i%100;
            if((a<b)&&(b<c)&&(a+b+c==18))
                  cout<<i<<" ";
      }
      return 0;
}

/* 6. Se citeste un text scris cu litere mici si spatii. Sa se înlocuiasca în
fiecare cuvânt din text prima si ultima litera cu literele mari corespunzatoare.
*/
#include<iostream>
using namespace std;
int main()
{ char s[200],s1[100], *st;
int i, a,n;
cin.get(s,199);
st=strtok(s," ,./'");
strcpy(s1,st);

n=strlen(s1);
s1[0]=toupper(s1[0]);
s1[n-1]=toupper(s1[n-1]);
cout<<s1<<" ";
while(st)
{     st=strtok(NULL," ,.;");
strcpy(s1,st);

n=strlen(s1);
s1[0]=toupper(s1[0]);
s1[n-1]=toupper(s1[n-1]);
cout<<s1<<" ";
}
}




/*9. Se dã fiºierul text "perechi.in" care conþine pe fiecare rând câte o
pereche de numere naturale nenule separate prin câte un spaþiu. Sã se afiºeze
numãrul perechilor de numere prime între ele din fiºierul dat.
Exemplu: dacã fiºierul are urmãtorul conþinut:
      6 26
      18 7
      9 36
      8 15
      9 22
      0


atunci valoarea care se afiºeazã este 3.
*/
#include<iostream>
#include<fstream.h>
using namespace std;
int main()
{int a,b,nr=0,ok,i;
fstream f1("date.in",ios::in);

while(a!=0)
{     ok=1;
      i=2;
f1>>a;
f1>>b;
while(i<=a)
{if((a%i==0)&&(b%i==0))
      ok=0;
i++;
}
if(ok==1)
      nr++;
}
cout<<nr;


/*5. Se da o matrice patratica cu n linii si n coloane. Aceasta se imparte in 4
emisfere prin intermediul diagonalei principale si a celei secundare. Sa se
scrie o functie recursiva prin care sa se afle procentul pe care il reprezinta
numarul de 0-uri din numarul total de cifre din emisfera estica.
ex.:
n=5
21 12 34 17 22
14 22 12 33 44
51 26 78 90 10
12 44 56 89 52
17 81 45 57 21
Numerele din emisfera estica sunt 90, 10, 44, 52.
Se va afisa 25%.

*/
#include<iostream>
using namespace std;
int nr0(int n)
{
      int i=0,nr;
      while(n)
      {
            if(n%10==0)
                  i++;
            n=n/10;
      }
      return i;
}
int procent(int a ,int b)
{
      float procent
}
int main()
{
      int mat[100][100],i,j,n,nrtotcifre=0,k=0,l,nrtot0=0 ,v[100] ;
      cin>>n;
      for(i=0;i<n;i++)
      {
            for(j=0;j<n;j++)
                  cin>>mat[i][j];
      }
      for(i=0;i<n;i++)
      {
            for(j=0;j<n;j++)
            {
                  if((i<j) && (i>n-1-j))
                  {
                        v[k]=mat[i][j];
                        k++;
                  }
            }
      }
      for(i=0;i<k;i++)
      {
            nrtot0=nrtot0+ nr0(v[i]);
            while(v[i])
            {
                  nrtotcifre++;
                  v[i]=v[i]/10;
            }
      }
cout<<nrtotcifre<<" "<<nrtot0;
}
cout<<nrtotcifre<<" "<<nrtot0;
}

More Related Content

Similar to Problemeinfo27.09

E d informatica_2020_sp_sn_c_var_test_05
E d informatica_2020_sp_sn_c_var_test_05E d informatica_2020_sp_sn_c_var_test_05
E d informatica_2020_sp_sn_c_var_test_05Ovidiu Dumitrescu
 
E d informatica_2020_sp_mi_c_var_test_08
E d informatica_2020_sp_mi_c_var_test_08E d informatica_2020_sp_mi_c_var_test_08
E d informatica_2020_sp_mi_c_var_test_08Ovidiu Dumitrescu
 
Tablouri bidimensionale
Tablouri bidimensionaleTablouri bidimensionale
Tablouri bidimensionaleTina Cris
 
Functii, tablouri si pointeri in c si c++
Functii, tablouri si pointeri  in c si c++Functii, tablouri si pointeri  in c si c++
Functii, tablouri si pointeri in c si c++Serghei Urban
 
Aritmetica In Baza Doi
Aritmetica In Baza DoiAritmetica In Baza Doi
Aritmetica In Baza Doiguestc99a0d00
 
Instructiuni in c si c++
Instructiuni in c si c++Instructiuni in c si c++
Instructiuni in c si c++Serghei Urban
 
00007 backtracking
00007 backtracking00007 backtracking
00007 backtrackingAlly Le
 
E d informatica_2020_sp_mi_c_var_test_04
E d informatica_2020_sp_mi_c_var_test_04E d informatica_2020_sp_mi_c_var_test_04
E d informatica_2020_sp_mi_c_var_test_04Ovidiu Dumitrescu
 

Similar to Problemeinfo27.09 (10)

E d informatica_2020_sp_sn_c_var_test_05
E d informatica_2020_sp_sn_c_var_test_05E d informatica_2020_sp_sn_c_var_test_05
E d informatica_2020_sp_sn_c_var_test_05
 
E d informatica_2020_sp_mi_c_var_test_08
E d informatica_2020_sp_mi_c_var_test_08E d informatica_2020_sp_mi_c_var_test_08
E d informatica_2020_sp_mi_c_var_test_08
 
Tablouri bidimensionale
Tablouri bidimensionaleTablouri bidimensionale
Tablouri bidimensionale
 
Test i
Test iTest i
Test i
 
Functii, tablouri si pointeri in c si c++
Functii, tablouri si pointeri  in c si c++Functii, tablouri si pointeri  in c si c++
Functii, tablouri si pointeri in c si c++
 
Aritmetica In Baza Doi
Aritmetica In Baza DoiAritmetica In Baza Doi
Aritmetica In Baza Doi
 
Instructiuni in c si c++
Instructiuni in c si c++Instructiuni in c si c++
Instructiuni in c si c++
 
00007 backtracking
00007 backtracking00007 backtracking
00007 backtracking
 
E d informatica_2020_sp_mi_c_var_test_04
E d informatica_2020_sp_mi_c_var_test_04E d informatica_2020_sp_mi_c_var_test_04
E d informatica_2020_sp_mi_c_var_test_04
 
Vectori
VectoriVectori
Vectori
 

Problemeinfo27.09

  • 1. problema 1: /*1. Sa se scrie o functie recursiva care primeste 3 parametri: n - numar natural, c1,c2 cifre si returneaza numarul obtinut din n prin inlocuirea tuturor aparitiilor cifrei c1 cu c2. */ #include<iostream> using namespace std; int inlocuire(int n, int c1, int c2) { if(n!=0) { if(n%10==c1) return inlocuire(n/10,c1,c2)*10 + c2; return inlocuire(n/10,ci,c2)*10 + n%10; } return 0; } int main() { cout<<inlocuire(5446,4,7); } problema 2: /* 2. Sa se scrie o functie recursiva care primeste un parametru n numar natural si returneaza numarul obtinut din n prin eliminarea cifrelor pare. */ #include<iostream> using namespace std; int f(int n) { if(n==0) return 0; if(n) { if(n%10%2==0) return f(n/10); else return f(n/10)*10+n%10; } return 0; } int main() { int n; cin>>n; cout<<f(n); return 0;} problema 3: /* 3. Se citeste un vector a cu n elemente numere naturale. Sa se calculeze elementul maxim din vector. Se va folosi o functie recursiva pentru citire si una recursiva pentru determinarea elementului maxim. */ #include<iostream> using namespace std;
  • 2. int citire(int v[100], int n) { if(n>0) cin>>v[n]; if(n) return citire(v,n-1); else return 0; } int maxim(int v[100],int n, int max) { if(n>0) { if(v[n]>max) max=v[n]; return maxim(v,n-1,max); } else cout<<max; } int main() { int a[100],nr,max1=0; cin>>nr; citire(a,nr); maxim(a,nr,max1); } problema 8: /* 8. Se da un vector cu ,n componente de numere întregi. Se cere sa se afi?eze câte dintre elementele vectorului sunt mai mici decât media aritmetica a componentelor acestuia. */ #include<iostream> using namespace std; int main() { int n,v[200],i,ma=0,nrelemmici=0; cin>>n; for(i=0;i<n;i++) { cin>>v[i]; } for(i=0;i<n;i++) { ma=ma+v[i]; } ma=ma/n; for(i=0;i<n;i++) { if(v[i]<ma) nrelemmici++; } cout<<"sunt atatea elem mai mici:"<<nrelemmici; } /* 10. Scrieti toate numerele cuprinse între 1000 si 3000 care au doua cifre zero si suma tuturor cifrelor egala cu patru. Câte astfel de numere sunt? Care
  • 3. este numarul cel mai mic si care este numarul cel mai mare? */ #include<iostream> using namespace std; int nrcifrezero( int n) { int i=0; while(n) { if(n%10==0) i++; n=n/10; } return i; } int sumcif(int n) { int sum=0; while(n) { sum=sum+n%10; n=n/10; } return sum; } int main() { int i; for(i=1000;i<3001;i++) { if(nrcifrezero(i)==2 && sumcif(i)==4) cout<<i<<" "; } } 11. /* 11. Sa se afiseze toate numerele cuprinse între 100 si 599, având cifrele în ordine crescatoare si suma celor trei cifre egala cu 18. */ #include <iostream> using namespace std; int main () { int i,a,b,c; for(i=100;i<=599;i++) { a=i/100; b=i/10%10; c=i%100; if((a<b)&&(b<c)&&(a+b+c==18)) cout<<i<<" "; } return 0; } /* 6. Se citeste un text scris cu litere mici si spatii. Sa se înlocuiasca în fiecare cuvânt din text prima si ultima litera cu literele mari corespunzatoare. */
  • 4. #include<iostream> using namespace std; int main() { char s[200],s1[100], *st; int i, a,n; cin.get(s,199); st=strtok(s," ,./'"); strcpy(s1,st); n=strlen(s1); s1[0]=toupper(s1[0]); s1[n-1]=toupper(s1[n-1]); cout<<s1<<" "; while(st) { st=strtok(NULL," ,.;"); strcpy(s1,st); n=strlen(s1); s1[0]=toupper(s1[0]); s1[n-1]=toupper(s1[n-1]); cout<<s1<<" "; } } /*9. Se dã fiºierul text "perechi.in" care conþine pe fiecare rând câte o pereche de numere naturale nenule separate prin câte un spaþiu. Sã se afiºeze numãrul perechilor de numere prime între ele din fiºierul dat. Exemplu: dacã fiºierul are urmãtorul conþinut: 6 26 18 7 9 36 8 15 9 22 0 atunci valoarea care se afiºeazã este 3. */ #include<iostream> #include<fstream.h> using namespace std; int main() {int a,b,nr=0,ok,i; fstream f1("date.in",ios::in); while(a!=0) { ok=1; i=2; f1>>a; f1>>b; while(i<=a) {if((a%i==0)&&(b%i==0)) ok=0; i++; } if(ok==1) nr++; }
  • 5. cout<<nr; /*5. Se da o matrice patratica cu n linii si n coloane. Aceasta se imparte in 4 emisfere prin intermediul diagonalei principale si a celei secundare. Sa se scrie o functie recursiva prin care sa se afle procentul pe care il reprezinta numarul de 0-uri din numarul total de cifre din emisfera estica. ex.: n=5 21 12 34 17 22 14 22 12 33 44 51 26 78 90 10 12 44 56 89 52 17 81 45 57 21 Numerele din emisfera estica sunt 90, 10, 44, 52. Se va afisa 25%. */ #include<iostream> using namespace std; int nr0(int n) { int i=0,nr; while(n) { if(n%10==0) i++; n=n/10; } return i; } int procent(int a ,int b) { float procent } int main() { int mat[100][100],i,j,n,nrtotcifre=0,k=0,l,nrtot0=0 ,v[100] ; cin>>n; for(i=0;i<n;i++) { for(j=0;j<n;j++) cin>>mat[i][j]; } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if((i<j) && (i>n-1-j)) { v[k]=mat[i][j]; k++; } } } for(i=0;i<k;i++) { nrtot0=nrtot0+ nr0(v[i]); while(v[i]) { nrtotcifre++; v[i]=v[i]/10; } }