Guest User

Untitled

a guest
Sep 20th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.50 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int input() {
  4.     int op;
  5.    
  6.     printf("Type:\n(1) for Fibonacci\n(2) for Factorial\n(3) for Exponentiation\n");
  7.     printf("What operation would you like to perform? ");
  8.     scanf("%d", &op);
  9.     return op;
  10.  
  11. }
  12.  
  13. int fibo(int a) {
  14.     if(a == 0)
  15.         return 0;
  16.     else if(a == 1)
  17.         return 1;
  18.     else
  19.         return fibo(a-1) + fibo(a-2);
  20. }
  21.  
  22. int fact(int a) {
  23.     if (a==0)
  24.         return 1;
  25.     else
  26.         return a*fact(a-1);
  27. }
  28.  
  29. float expt(float a, int b) {
  30.     if(b==0)
  31.         return 1;
  32.     else if(b==1)
  33.         return a;
  34.     else if(b%2==0)
  35.         return expt(a,b/2) * expt(a,b/2);
  36.     else if(b%2!=0)
  37.         return a * expt(a,(b-1)/2) * expt(a,(b-1)/2);
  38. }
  39.  
  40. int main() {
  41.     input();
  42.  
  43.     if(input()==1)
  44.     {
  45.         int a;
  46.        
  47.         printf("\n****FIBONACCI****\n");
  48.         printf("Input nth term of Fibonacci sequence: ");
  49.         scanf("%d", &a);
  50.         if(a<0)
  51.         {
  52.             printf("Invalid input.\n\n");
  53.             input();
  54.         }
  55.         printf("The term %d of Fibonacci sequence is %d.", a, fibo(a));
  56.     }
  57.  
  58.     else if(input()==2)
  59.     {
  60.         int a;
  61.        
  62.         printf("\n****FACTORIAL****\n");
  63.         printf("Input number: ");
  64.         scanf("%d", &a);
  65.         if(a<0)
  66.         {
  67.             printf("Invalid input.\n\n");
  68.             input();
  69.         }
  70.         printf("%d! (factorial) is %d", a, fact(a));
  71.     }
  72.  
  73.     else if(input()==3)
  74.     {
  75.         float a;
  76.         int b;
  77.  
  78.         printf("\n****EXPONENTIATION****\n");
  79.         printf("Input base number: ");
  80.         scanf("%f", &a);
  81.         printf("Input exponent: ");
  82.         scanf("%d", &b);
  83.         if(b<0)
  84.         {
  85.             printf("Invalid input.\n\n");
  86.             input();
  87.         }
  88.  
  89.         printf("%.2f raised to %d is %.2f", a, b, expt(a,b));
  90.     }
  91.  
  92.     return 0;
  93. }
Add Comment
Please, Sign In to add comment