Advertisement
Dani_info

Tema 24.09.2018

Sep 21st, 2018
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.81 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int nrCifre (int);
  6. int invers (int);
  7. int cmmdc(int, int);
  8.  
  9. int main()
  10. {
  11.     int pb; cout<<"Introdu nr pb."; cin>>pb;
  12.     switch (pb){
  13.         case 1:{
  14.             /*1. Se citeste un numar natural, n, si o cifra, c. Sa se genereze si sa se afiseze numarul obtinut prin eliminarea tuturor aparitiilor cifrei c din numarul dat.*/
  15.             int n; cout<<"n="; cin>>n;
  16.             int c; cout<<"c="; cin>>c;
  17.             int ind=nrCifre(n);
  18.             int v[ind];
  19.             for (int i=n, j=0; i; i/=10, j++)
  20.                 v[j]=i%10;
  21.             for (int i=0; i<nrCifre(n); i++){
  22.                 if (v[i]==c){
  23.                     for (int k=i; k<ind; k++)
  24.                         v[k]=v[k+1];
  25.                     ind--;
  26.                 }
  27.             }
  28.             int nr_nou=0;
  29.             for (int i=0; i<ind; i++){
  30.                 nr_nou=nr_nou*10+v[i];
  31.             }
  32.             cout<<"Nr format este: "<<invers(nr_nou);
  33.             break;
  34.         }
  35.         case 2:{
  36.             /*2. Se citeste un numar natural, nenul, n, si apoi un sir de n numere naturale. Sa se afiseze cel mai mare divizor comun al numerelor citite.*/
  37.             int  n; cout<<"n="; cin>>n;
  38.             cout<<"Introdu nr:"<<endl;
  39.             int cmmdc1, x, y;
  40.             cin>>x>>y;
  41.             cmmdc1=cmmdc(x,y);
  42.             for (int i=2; i<n; i++){
  43.                 cin>>x;
  44.                 cmmdc1=cmmdc(cmmdc1, x);
  45.             }
  46.             cout<<"CMMDC este: "<<cmmdc1;
  47.             break;
  48.         }
  49.         case 3:{
  50.             /*3. Se citesc doua numere naturale a si b. Sa se verifice daca ele sunt termeni consecutivi ai sirului lui Fibonacci.*/
  51.             int a, b;
  52.             cout<<"a="; cin>>a;
  53.             cout<<"b="; cin>>b;
  54.             //a<b
  55.             int nr1=1, nr2=1, nr3, v[100];
  56.             int ind, ok=0;
  57.             for (int i=3, j=0; nr3<a; i++, j++){
  58.                 nr3=nr1+nr2;
  59.                 if (a==nr3)
  60.                     ok=1;
  61.                 v[j]=nr3;
  62.                 ind=j;
  63.                 nr1=nr2;
  64.                 nr2=nr3;
  65.         }
  66.         if (a==1 & b==1)
  67.             cout<<"DA";
  68.         else{
  69.             if (ok==1 && v[ind]+v[ind-1]==b)
  70.                 cout<<"DA";
  71.             else
  72.  
  73.                 cout<<"BUBA";
  74.         }
  75.         break;
  76.         }
  77.     }
  78.     return 0;
  79. }
  80.  
  81.  
  82.     int nrCifre (int n){
  83.         int k=0;
  84.         for (int i=n; i; i/=10)
  85.             k++;
  86.         return k;
  87.     }
  88.  
  89.     int invers (int n){
  90.         int k=0;
  91.         while (n){
  92.             k=k*10+n%10;
  93.             n/=10;
  94.         }
  95.         return k;
  96.     }
  97.  
  98.         int cmmdc(int a, int b)
  99.     {
  100.         int r;
  101.         r = a % b;
  102.         while(r)
  103.         {
  104.             a=b;
  105.             b=r;
  106.             r=a%b;
  107.         }
  108.         return b;
  109.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement