Makarona

Поклопување на броеви

Dec 20th, 2018
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. /*
  2. Да се напише рекурзивна функција која што ќе прима два аргументи: броеви А и B, а како резултат ќе дава децимален број што ќе означува во колкав процент броевите имаат исти цифри на исти позиции (позициите се сметаат почнувајќи од цифрата на единиците во бројот).
  3.  
  4. Пример 1:
  5.  
  6. A=12345 B=12885
  7.  
  8. Во овие два броеви имаме поклопување на (гледано од лево од најнезначајната цифра) прва, четврта и петта позиција. Процентот на поклопување е:
  9.  
  10. 35∗100.00=60.00
  11. Пример 2:
  12.  
  13. A=12345 B=645
  14.  
  15. Во овие два броеви имаме поклопување на првата и втората позиција. Процентот на поклопување е:
  16.  
  17. 25∗100.00=40.00
  18. Потоа, од стандарден влез се вчитува број N и N парови од по два броеви. За секој пар на броеви (во нов ред) да се испечати процентот на поклопување на цифрите во тие броеви.
  19. */
  20.  
  21. #include <stdio.h>
  22. float poklopuvanje(int, int);
  23.  
  24. int main()
  25. {
  26.     int a, b, n;
  27.     scanf("%d", &n);
  28.     for(int i=0; i<n; i++)
  29.     {
  30.         scanf("%d %d", &a, &b);
  31.         printf("%.2f%%\n", poklopuvanje(a,b));
  32.     }
  33.    
  34.     return 0;
  35. }
  36. float poklopuvanje(int a, int b)
  37. {
  38.     static int x=0, y=0;
  39.     if(a==0&&b==0)
  40.     {
  41.         float p=(float)x/y*100;
  42.         x=0;
  43.         y=0;
  44.         return p;
  45.     }        
  46.     else
  47.     {
  48.         int prv=a%10, vtor=b%10;
  49.         y++;
  50.         if(prv==vtor && a>0 && b>0)
  51.             x++;
  52.         return poklopuvanje(a/10, b/10);
  53.     }
  54.    
  55. }
Advertisement
Add Comment
Please, Sign In to add comment