Chủ Nhật, 8 tháng 2, 2015

Tính tổng n giai thừa - C/C++

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

int GiaiThua(int x)
{
    if(x<0) return x;
    if(x==1) return 1;
    else return (x*GiaiThua(x-1));
}
int main()
{   printf("*************************************");
    printf("\n CHUONG TRINH TINH TONG N GIAI THUA");
    printf("\n*************************************");


    int i,n;
    int tong,giai_thua,tran;
    tong = 0;
    giai_thua = 1;

    do{
        printf("\nNhap vao so n: ");
        scanf("%d",&n);
    }while(n<=0);
    for (i=1;i<=n;i++)
    {
        giai_thua = GiaiThua(i);
        if(giai_thua<0)
        {
            printf(" => Tran bo nho tai i = %d",i);
            break;
        }
        tran = tong;
        tong = tong + giai_thua;
        if(tong<0)
        {
            printf(" => Tran bo nho tai i = %d",i);
            tong = tran;
            break;
        }
    }

    printf("\n\nTong can tinh la: %ld",tong);
    getch();
    return 0;
}

Không có nhận xét nào:

Đăng nhận xét