Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.63 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define __DEBUG
  4.  
  5. double pow_r(double a, int n){
  6.     if(n==1) return a;
  7.     return (n & 1 ? a : 1) * pow_r(a*a, n>>1);
  8. }
  9.  
  10. double pow(double a, int n){
  11.  
  12.     double pow = 1;
  13.  
  14.     for(int i = 1; i <= n; i <<= 1){
  15.         if(n & i){
  16.             pow *= a;
  17.         }
  18.         a *= a;
  19.     }
  20.  
  21.     return pow;
  22. }
  23.  
  24. int main(){
  25.  
  26.     int n;
  27.     double a;
  28.  
  29. #ifdef __DEBUG
  30.     while(true){
  31. #endif
  32.  
  33.     printf("Zadejte a n: ");
  34.     if(scanf("%lf %d", &a, &n) != 2 || n < 0){
  35.         printf("Nespravny vstup.\n");
  36.         return 1;
  37.     }
  38.    
  39.     printf("%f ^ %d = %lf\n", a, n, pow(a, n));
  40.     printf("%f ^ %d = %lf\n", a, n, pow_r(a, n));
  41.  
  42. #ifdef __DEBUG
  43.     }
  44. #endif
  45.  
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement