zoukankan      html  css  js  c++  java
  • nyoj28-大数阶乘

    大数阶乘

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
    描述
    我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
    输入
    输入一个整数m(0<m<=5000)
    输出
    输出m的阶乘,并在输出结束之后输入一个换行符
    样例输入
    50
    样例输出
    30414093201713378043612608166064768844377641568960512000000000000
    
     
    #include <iostream>
    using namespace std;
    int main()
    {
    int m;
    int length=0;//控制长度
    int count=0;//计算数的位数
    int a[20000],j;
    a[0]=1;
    cin>>m;
    if(1<m&&m<5000)
    {
    
    for(int i=2;i<=m;i++)
    {
    for( j=0;j<=length;j++)
    {
    a[j]=a[j]*i+count;
    count=0;
    if(a[j]>10)
    {
    
    count=a[j]/10;
    a[j]%=10;
    
    
    if(j==length)
    {
    length++;
    }
    }
    
    }
    }
    for(int i=length;i>=0;i--)
    {
    cout<<a[i];
    }
    cout<<endl;
    }
    return 0;
    }        

     
    #include<stdio.h>
    #include<string.h>
    const int maxn=20000;
    int a[maxn];
    int main()
    {
    	int n,i,j,s,c;
    	scanf("%d",&n);
        memset(a,0,sizeof(a));
        a[0]=1;
        for(i=2;i<=n;i++)
    	{c=0;
        for(j=0;j<=maxn;j++)
    	{
        s=a[j]*i+c;
    	a[j]=s%10;
    	c=s/10;
    	}
    	}
    	for(j=maxn;j>=0;j--) if(a[j]) break;
    	for(i=j;i>=0;i--) printf("%d",a[i]);
    	printf("
    ");
    	return 0;
    }        

  • 相关阅读:
    终极快速排序
    微服务(Microservices)【翻译】
    从Uber微服务看最佳实践如何炼成?
    请不要在“微服务”的狂热中迷失自我!
    笔记_第四章_04
    笔记_第三章_03
    笔记_第二章_02
    笔记_第一章_01
    jQuery简单入门(五)
    jQuery简单入门(四)
  • 原文地址:https://www.cnblogs.com/aerer/p/9931105.html
Copyright © 2011-2022 走看看