[ create a new paste ] login | about

Link: http://codepad.org/NFSM50qd    [ raw code | output | fork ]

C, pasted on Mar 4:
#include<stdio.h>
#include<stdlib.h>
int max = 5000;
void display(int arr[]){
    int ctr = 0;
    int i=0;
    for (i=0; i<max; i++){
    	if (!ctr && arr[i])		 
            ctr = 1;
    	if(ctr)
            printf("%d", arr[i]);
    }
}
void factorial(int arr[], int n){
    if (!n) return;
    int carry = 0;
    int i=max-1;
    for (i=max-1; i>=0; --i){
        arr[i] = (arr[i] * n) + carry;
        carry = arr[i]/10;
        arr[i] %= 10;
    }
    factorial(arr,n-1);
}
int main(){
    int *arr = calloc(max, sizeof(int));
    arr[max-1] = 1;
    int num;
    printf("Enter the number: ");
    num = 5;
    printf("factorial of  %d is: ",num);
    factorial(arr,num);
    display(arr);
    free(arr);
    return 0;
}


Output:
1
Enter the number: factorial of  5 is: 120


Create a new paste based on this one


Comments: