Advertisement
icatalin

lab 4 TP 16.03.2018

Mar 16th, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.77 KB | None | 0 0
  1. //prob 1
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. int main()
  7. {
  8.     int i,n,v[100],sum,sumT=0;
  9.  
  10.     scanf("%d",&n);
  11.  
  12.     for (i=0; i<n-1; i++)
  13.         {
  14.             scanf("%d",&v[i]);
  15.             sumT+=v[i];
  16.         }
  17.  
  18.     sum = (n*(n+1))/2;
  19.  
  20.     printf("Numarul lipsa este %d",sum-sumT);
  21.  
  22.     return 0;
  23. }
  24.  
  25. //prob 2, metoda votului majoritar
  26. #include <stdio.h>
  27. #include <stdlib.h>
  28.  
  29. int main()
  30. {
  31.     int i,n,v[100];
  32.  
  33.     scanf("%d",&n);
  34.  
  35.     for (i=0; i<n; i++)
  36.         {
  37.             scanf("%d",&v[i]);
  38.         }
  39.  
  40.     int cand = v[0], k= 0 ;
  41.  
  42.     for (i=0; i<n-1; i++)
  43.     {
  44.         if (v[i] == v[i+1])
  45.             k++;
  46.  
  47.         if ((v[i] != v[i+1]) && k == 0 )
  48.         {
  49.             cand = v[i+1];
  50.             k--;
  51.         }
  52.     }
  53.  
  54.     printf("\n\n cand = %d  k = %d \n\n\n",cand,k);
  55.  
  56.     int nr_app = 0;
  57.  
  58.     for (i=0; i<n; i++)
  59.     {
  60.         if (v[i] == cand)
  61.             nr_app++;
  62.     }
  63.  
  64.     if (nr_app >= floor(n/2) + 1)
  65.         printf("Elementul majoritar este %d.",cand);
  66.     else
  67.         printf("Nu exista un element majoritar.");
  68.  
  69.  
  70.  
  71.  
  72.  
  73.     return 0;
  74. }
  75.  
  76. //prob 4
  77. #include <stdio.h>
  78. #include <stdlib.h>
  79.  
  80. int cautareBinare(int v[], int a, int b, int x)
  81. {
  82.     int mij;
  83.  
  84.     if (b >= a)
  85.     {
  86.         mij = a + (b - a)/2;
  87.  
  88.         if (v[mij] == x)
  89.             return mij;
  90.  
  91.         if (v[mij] > x)
  92.             return cautareBinare(v,a,mij-1,x);
  93.  
  94.         return cautareBinare(v,mij+1,b,x);
  95.     }
  96.  
  97.     return -1;
  98. }
  99.  
  100. int main()
  101. {
  102.     int i,n,v[100];
  103.  
  104.     scanf("%d",&n);
  105.  
  106.     for (i=0; i<n; i++)
  107.         {
  108.             scanf("%d",&v[i]);
  109.         }
  110.  
  111.     printf("Elementul cautat se afla pe pozitia %d",cautareBinare(v,0,n-1,3));
  112.  
  113.  
  114.  
  115.     return 0;
  116. }
  117.  
  118. //problema 4
  119. #include <stdio.h>
  120. #include <stdlib.h>
  121.  
  122. int cmmdc(int a, int b)
  123. {
  124.     if (a == 0)
  125.         return b;
  126.  
  127.     return cmmdc(b%a,a);
  128. }
  129.  
  130.  
  131. int vector_cmmdc(int v[], int n)
  132. {
  133.     int i, div = 0;
  134.  
  135.     div = cmmdc(v[0],v[1]);
  136.     if (div == 1)
  137.             return 1;
  138.  
  139.     for (i=2; i<n; i++)
  140.         div = cmmdc(div,v[i]);
  141.  
  142.     return div;
  143. }
  144.  
  145.  
  146. int cmmdc_rec(int v[], int n)
  147. {
  148.     if (n==2)
  149.         return cmmdc(v[0],v[1]);
  150.     else
  151.         return cmmdc(cmmdc_rec(v,n-1),v[n-1]);
  152. }
  153.  
  154. int main()
  155. {
  156.     int i,n,v[100];
  157.  
  158.     scanf("%d",&n);
  159.  
  160.     for (i=0; i<n; i++)
  161.         {
  162.             scanf("%d",&v[i]);
  163.         }
  164.  
  165.     printf("cmmdcul este %d",cmmdc_rec(v,n));
  166.  
  167.     return 0;
  168. }
  169.  
  170. //problema 5
  171. #include <stdio.h>
  172. #include <stdlib.h>
  173. int suma(int *v, int n,int i)
  174. {if(i==n)return 0;
  175.     if(i%2==0)return v[i]+suma(v,n,i+1);
  176. else return suma(v,n,i+1)-v[i];
  177.  
  178.  
  179. }
  180. int main()
  181. {
  182.     int v[100],n,i;
  183.     scanf("%d",&n);
  184.     for(i=0;i<n;i++)
  185.         scanf("%d",&v[i]);
  186.     printf("%d",suma(v,n,0));
  187.  
  188.  
  189.     return 0;
  190. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement