zoukankan      html  css  js  c++  java
  • 阶乘模版

    #include<cstdio>
    #include<cstring>
    #include <iostream>
    using namespace std;
    #pragma warning(disable : 4996)
    #define maxn 50000
    int f[maxn];
    int main()
    {
    	int m, i, j;
    	while(scanf("%d", &m) != EOF)
    	{
    		memset(f, 0, sizeof(f));
    		f[0] = 1;
    		for(i = 2; i <= m; i++)
    		{
    			int c = 0;
    			for(j = 0; j < maxn; j++)
    			{
    				int s = f[j] * i + c;
    				f[j] = s % 10;
    				c = s / 10;
    			}
    		}
    		for(j = maxn - 1; j >= 0; j--)
    		{
    			if(f[j])
    			{
    				break;
    			}
    		}
    		for(i = j; i >= 0; i--)
    		{
    			printf("%d", f[i]);
    		}
    		printf("\n");
    	}
    	return 0;
    }
    


    压位:

    #include<cstdio>
    #include<cstring>
    #include <iostream>
    using namespace std;
    #pragma warning(disable : 4996)
    
    void factorial(int n)
    {
    	long long c, a[10000];
    	int i, j, m = 0; 
    	a[0] = 1;
    	for(i = 1; i <= n; i++)
    	{ 
    		c = 0; 
    		for(j = 0; j <= m; j++)
    		{ 
    			a[j] = a[j] * i + c; 
    			c = a[j] / 100000;
    			a[j] = a[j] % 100000;
    		} 
    		if(c > 0)
    		{
    			m++;
    			a[m] = c;
    		} 
    	}
    	printf("%lld", a[m]); 
    	for(i = m - 1; i >= 0; i--)
    	{
    		printf("%5.5lld", a[i]);
    	}
    	printf("\n");
    } 
    int main()
    {
    	int m;
    	while(scanf("%d", &m) != EOF)
    	{
    		factorial(m);
    	}
    	return 0;
    }
    



  • 相关阅读:
    反向映射和写时复制
    内存分析的好blog
    minicom使用
    tee的妙用
    网络带宽
    mem analyse
    linux 应用层常用API/命令
    ubuntu 库依赖问题
    Python基础学习笔记(一:hello world)
    第7章 取消与关闭
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5834968.html
Copyright © 2011-2022 走看看