zoukankan      html  css  js  c++  java
  • N的阶乘:高精度

    N的阶乘

    题目描述

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

    输入描述:

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

    输出描述:

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

    输入

    4
    5
    15
    

    输出

    24
    120
    1307674368000
    
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<string.h>
    #include<string>
    using namespace std;
    int a[1000010];
    
    int main(){
    	int n;
    	while(scanf("%d",&n)!=EOF){
    		memset(a,0,sizeof(a));
    		a[0]=1;
    		for(int i=2;i<=n;i++){				//i从2累乘到n 
    			int s,c=0;						//c代表进位 
    			for(int j=0;j<3000;j++){		//3000是长度, 
    				s=a[j]*i+c;					//s 暂存为i乘结果的某一位 
    				a[j]=s%10;					 
    				c=s/10;						//判断要进多少位 
    			}
    		}
    		int ans=0;
    		for(int i=3000;i>=0;i--){
    			if(a[i]==0&&ans==0)continue;	//不输出前缀0 
    			else{
    			ans=1;
    			printf("%d",a[i]);
    			}
    		}
    		printf("
    ");
    	}
    	return 0;
    }
    
  • 相关阅读:
    NPM 重新回炉
    构建工具
    工作的环境部署
    Proxy 代理
    Promise 的 用法及实现
    JS 的 继承
    动态规划——LCS
    矩阵连乘——动态规划
    线段树&树状数组
    SpringAOP
  • 原文地址:https://www.cnblogs.com/52dxer/p/10539587.html
Copyright © 2011-2022 走看看