Giai thừa - Cách tính giai thừa trong C



Bài tập

Viết một chương trình C để tính giai thừa của một số bất kỳ được nhập từ người dùng, theo hai cách: sử dụng vòng lặp và sử dụng hàm đệ qui.

Chương trình C sử dụng vòng lặp để tính giai thừa

#include<stdio.h>  
#include<conio.h>  

int main(){  
  int i,giaithua=1,sobatky;  
  
  printf("Nhap mot so bat ky: ");  
  scanf("%d",&sobatky);  
  
  for(i=1;i<=sobatky;i++){  
      giaithua=giaithua*i;  
  }  
  printf("\nGiai thua cua %d la: %d",sobatky,giaithua);  
  
  printf("\n\n===========================\n");
  printf("VietJack chuc cac ban hoc tot!");
  getch();  
}  

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Giai thừa - Cách tính giai thừa trong C

Chương trình C sử dụng hàm đệ qui để tính giai thừa

#include<stdio.h>  
#include<conio.h>  

// khai bao ham tinhgiaithua
long tinhgiaithua(int n)  
{  
  if (n == 0)  
    return 1;  
  else  
    return(n * tinhgiaithua(n-1));  
}  

// ham main de tinh giai thua   
int main()  
{  
  int sobatky;  
  long giaithua;  
   
  printf("Nhap mot so bat ky: ");  
  scanf("%d", &sobatky);   
   
  giaithua = tinhgiaithua(sobatky);  
  printf("Giai thua cua %d la: %ld", sobatky, giaithua);  
  
  printf("\n\n===========================\n");
  printf("VietJack chuc cac ban hoc tot!");
  
  getch();  
}  

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Giai thừa - Cách tính giai thừa trong C