Crazy

pomestuvanje vo levo

Dec 3rd, 2016
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int pom(int n, int k)
  5. {
  6. // l - length ili broj na cifri na brojot. temp - kopija na brojot za da se deli so 10
  7.     int l=1, temp=n, fin;
  8.     while(temp/=10)l++;  //go deli temp so 10 dur ne stane 0 i go zgolemuva l za sekoja cifra skratena
  9.  
  10.     k%=l;  //pomestuvanje 10 pati vo 3 cifren broj e isto kako pomestuvanje ednash (10%3==1)
  11.  
  12.     int bar=pow(10, l-k);  //goleminata na desniot del shto podocna kje stane lev, l-k e brojot na cifri na ovoj del, 10^k
  13.  
  14.     fin=(pow(10, k)*(n%bar)+(n/bar)); //go mnozime desniot del (n%bar) so 10^k za da mu dademe nuli na krajot posle toa mu go dodavame formerly leviot del kako desen del.
  15.       //primer: n=123456, k=2; bar=10^(6-2)=10000; n%bar= 3456 (desen); n/100 = 12 (lev); 3456*100= 345600+12 = 345612
  16.         return fin;
  17. }
  18.  
  19. int main()
  20. {
  21.     int m, foon, fook;
  22.     scanf("%d", &m);
  23.     for(int i=0;i<m;i++)
  24.     {
  25.         scanf("%d%d", &foon,&fook);
  26.         printf("%d\n", pom(foon, fook));
  27.     }
  28.     return 0;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment