大数——阶乘

链接: https://www.nowcoder.net/acm/contest/75/E
来源:牛客网

时间限制:C/C++ 3秒,其他语言6秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

给定一个整数N(0≤N≤10000),求取N的阶乘

输入描述:

多个测试数据,每个测试数据输入一个数N

输出描述:

每组用一行输出N的阶乘

输入

1
2
3

输出

1
2
6
题解:
#include <stdio.h>
 
int main()
{
    int n;
    while(~scanf( "%d", &n ))
    {
    	int i, j, tmp, sum;
	    char num[50000] = { 1 };
	    for ( i=2; i<=n; i++ )
	        for ( j=0,tmp=0; j<50000; j++ )
	        {
	            sum = num[j]*i+tmp;
	            num[j] = sum%10;
	            tmp = sum/10;
	        }
	 
	    i = 49999;
	    while ( !num[i] )
	        i--;
	    for ( j=i; j>=0; j-- )
	        printf( "%d",num[j] );
	    putchar( '\n' );
    }
    return 0;
}


全部评论

相关推荐

10-20 15:26
门头沟学院 Java
桥头牛油火锅:这个比例不正常,简历的话项目经历放中间,项目功能分点可以再明确点,前面加“·”或者“1 2 3”,另外简历上的照片可以去外面摄影店拍一下,以后也会用到的,hr筛人也是多少会看的,毕竟世界是一个巨大的卡颜局嘛,还有有些hr由于消息太多可能没看到,后面可能会回来找你,要简历的还会多一点,我也是普2本,比例大致是600:90:15:3,当然我实力不太够,拿的offer比较少,慢慢来吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务