воскресенье, 29 января 2012 г.

100!

//100! ба өөр том тооны факториал


#include<stdio.h>
#define MAX 10000
void factorialof(int);
void multiply(int);
int length = 0;
int fact[MAX];
int main(){
    int num;
    int i;
    printf("Duryn buhel eyereg too oruulna uu = ");
    scanf("%d",&num);
   
    fact[0]=1;
    factorialof(num);
   
    printf("Factorial = ");
    for(i=length;i>=0;i--){
         printf("%d",fact[i]);
    }
    return 0;
}
void factorialof(int num){
    int i;
    for(i=2;i<=num;i++){
         multiply(i);
    }
}
void multiply(int num){
    long i,r=0;
    int arr[MAX];
    for(i=0;i<=length;i++){
                arr[i]=fact[i];
        }
    for(i=0;i<=length;i++){
         fact[i] = (arr[i]*num + r)%10;
         r = (arr[i]*num + r)/10;
         //printf("%d ",r);
    }
    if(r!=0){
         while(r!=0){
             fact[i]=r%10;
             r= r/10;
             i++;
         }
    }
    length = i-1;   
}

/*
Factorial 100! =
933262154439441526816992388562667004907159
682643816214685929638952175999932299156089
414639761565182862536979208272237582511852
1091686400000000000
*/

Комментариев нет:

Отправить комментарий