码迷,mamicode.com
首页 > 其他好文 > 详细

题目1076:N的阶乘

时间:2015-04-13 19:05:39      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:online judge   九度   编程   c++   

题目描述:

 输入一个正整数N,输出N的阶乘。

输入:

正整数N(0<=N<=1000)

输出:

 输入可能包括多组数据,对于每一组输入数据,输出N的阶乘

样例输入:
4
5
15
样例输出:
24
120
1307674368000
来源:

2006年清华大学计算机研究生机试真题

#include <iostream>
#include <string.h>
#include <stdio.h>
//不超时的代码
using namespace std;
 
int main()
{
    int N;
    int num[3001];
    while(cin >>N)
    {
        int i,j,k;
        memset(num,0,sizeof(num));
        num[0] = 1;
        int length = 1;
        if(N == 0)
        {
            cout << 1 <<endl;
            continue;
        }
        for(i = 1; i<=N ; i++)
        {
            int over = 0;
 
            for(j = 0; j < length; j++)
            {
                num[j] = num[j] * i + over;
                if(num[j] >= 10)
                {
                    over = num[j] / 10;
                    num[j]  = num[j] % 10;
                }
                else
                    over = 0;
            }
            while(over != 0)
            {
                int temp = over % 10;
                num[length ++] = temp;
                over = over / 10;
            }
 
        }
        for(i = 3000;i >=0 ; i--)
            if(num[i] != 0)
                break;
        for(j = i ; j >= 0 ; j--)
            cout<<num[j];
        cout << endl;
    }
    return 0;
}
/**************************************************************
    Problem: 1076
    User: Carvin
    Language: C++
    Result: Accepted
    Time:1320 ms
    Memory:1520 kb
****************************************************************/


题目1076:N的阶乘

标签:online judge   九度   编程   c++   

原文地址:http://blog.csdn.net/carvin_zh/article/details/45028519

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!