Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.59 KB | None | 0 0
  1. #include <cstdio>
  2. #include <math.h>
  3.  
  4. typedef unsigned long long int lli;
  5.  
  6. lli MMC(lli a, lli b);
  7. lli MDC(lli a, lli b);
  8.  
  9. using namespace std;
  10.  
  11. int main()
  12. {
  13.     double CONST = M_PI/180.0;
  14.     int T;
  15.     lli N, a;
  16.     double l;
  17.     lli MMCs[360];
  18.  
  19.     MMCs[0] = 360;
  20.     for(int j=1; j<360; j++)
  21.         MMCs[j] = MMC(j, 360);
  22.  
  23.     scanf("%d", &T);
  24.     for(int i=0; i<T; i++)
  25.     {
  26.         scanf("%lld %lf %lld", &a, &l, &N);
  27.         if(a%360==0){
  28.             printf("%0.2lf %0.2lf\n", l*N, 0.0);
  29.             continue;
  30.         }
  31.         if((a*N)%360==0){
  32.             printf("%0.2lf %0.2lf\n", 0.0, 0.0);
  33.             continue;
  34.         }
  35.      
  36.         N  %= MMCs[a%360];
  37.  
  38.         //printf("%lli %lli\n", N, MMC(a, 360));
  39.  
  40.         double c_op, c_ad;
  41.         double x_ini = 0, y_ini = 0;
  42.  
  43.         for(int j=0; j<N; j++){
  44.             c_op = sin(((a*j)%360)*CONST)*l;
  45.             c_ad = cos(((a*j)%360)*CONST)*l;
  46.             x_ini += c_ad;
  47.             y_ini += c_op;
  48.         //  printf("%llu ==%0.2lf %0.2lf== %0.2lf %0.2lf\n", (a*j)%360, c_op, c_ad, x_ini, y_ini);
  49.         }
  50.  
  51.         if((int)(x_ini*100)%10 == 0 && (int)(x_ini*10)%10 == 0 && (int)x_ini%10 == 0) x_ini = 0;
  52.         if((int)(y_ini*100)%10 == 0 && (int)(y_ini*10)%10 == 0 && (int)y_ini%10 == 0) y_ini = 0;
  53.          
  54.         printf("%0.2lf %0.2lf\n", x_ini, y_ini);
  55.     }
  56.  
  57.     return 0;
  58. }
  59.  
  60. lli MDC(lli a, lli b)
  61. {
  62.     lli r;
  63.      
  64.     do{
  65.         r = a%b;
  66.         a = b;
  67.         b = r;
  68.     }while(r!=0);
  69.      
  70.     return a;
  71. }
  72.  
  73. lli MMC(lli a, lli b)
  74. {
  75.     return (a*b)/(MDC(a,b));
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement