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  
#include  


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("Hoctv 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ả:

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

#include  
#include  


// 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("Hoctv 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ả:


Bình luận