Advertisement
lineoff

factoielle

Nov 21st, 2014
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.34 KB | None | 0 0
  1. #include<stdio.h>
  2. //#include<conio.h>
  3.  
  4.  
  5. double fact_(int n);
  6. double fact_rec(int n);
  7.  
  8. int main(){
  9.     int n,i;
  10.     double fact_for = 1,fact_while = 1;
  11.    
  12.     printf("Donner un nombre pour calculer son factorielle :");
  13.     do{
  14.         if(scanf("%d",&n)!=1){
  15.             printf("Erreur : Invalide Input.\n");
  16.             }
  17.         }while(n < 0);
  18.     //la boucle for i--
  19.     for(i=n;i;i--){
  20.         fact_for *= i;
  21.         }
  22.     printf("la factorielle de %d est : %.0lf\n",n,fact_for);
  23.     //la boucle for i++
  24.     fact_for = 1;
  25.     for(i = 1;i <= n;i++){
  26.         fact_for *= i;
  27.         }
  28.     printf("la factorielle de %d est : %.0lf\n",n,fact_for);
  29.     //la boucle while i++
  30.     i= 1;
  31.     while(i <= n){
  32.         fact_while *= i;
  33.         i++;
  34.         }
  35.     printf("la factorielle de %d est : %.0lf\n",n,fact_while);
  36.     //la boucle while i--
  37.     i = n;
  38.     fact_while = 1;
  39.     while(i){
  40.         fact_while *= i;
  41.         i--;
  42.         }
  43.     printf("la factorielle de %d est : %.0lf\n",n,fact_while);
  44.     //les fonctions
  45.                   //recursive
  46.                   printf("la factorielle de %d est : %.0lf\n",n,fact_rec(n));
  47.                   //simple
  48.                   printf("la factorielle de %d est : %.0lf\n",n,fact_(n));
  49.     //getch();
  50.     return 0;
  51.     }
  52.     //fonction factorielle
  53. double fact_(int n){
  54.     double fact = 1;
  55.     int i = n;
  56.     while(i){
  57.         fact *= i;
  58.         i--;
  59.         }
  60.     return fact;
  61.     }
  62.     //fonction recursive
  63. double fact_rec(int n){
  64.     double fact = 1.;
  65.     if(n){
  66.         fact = (n * fact_rec(n-1));
  67.             }
  68.     return fact;
  69.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement