高精度 求阶乘

#include<stdio.h>
#include<string.h>
#define maxn 3000
int  f[maxn];
int main()
{
    int n,i,j;
    scanf("%d",&n);
    memset(f, 0, sizeof(f));
    f[0] = 1;
    for( i = 2;i <= n; i++)
    {
        int c=0;
        for( j = 0; j < 3000; 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]);
    return 0;

}
时间: 2024-11-03 16:54:46

高精度 求阶乘的相关文章

4165 ?高精度求阶乘

4165 ?高精度求阶乘 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 用高精度计算出S=n! 其中"!"表示阶乘,例如:5!=5*4*3*2*1 输入描述 Input Description 输入正整数N 输出描述 Output Description 输出计算结果S. 样例输入 Sample Input 3 样例输出 Sample Output 6 数据范围及提示 Data Size & Hin

高精度:阶乘之和

题目描述 用高精度计算出S=1!+2!+3!+…+n!(n≤50)S=1!+2!+3!+…+n! (n≤50)S=1!+2!+3!+…+n!(n≤50) 其中“!”表示阶乘,例如:5!=5×4×3×2×1 输入格式 一个正整数NNN. 输出格式 一个正整数SSS,表示计算结果. 输入输出样例 输入 #1  3 输出 #1  9思路:用到了两种高精度,阶乘高精度和加法高精度.高精度阶乘有两种代码: 1 void JieCheng(int a[], int c) 2 { 3 for (int i =

高精度运算-阶乘累积求和

# include <stdio.h> # include <math.h> # define N 66 int main(){ int s[N] = {0}, a[N] = {0};// s累加和,a累积求阶乘 int i,j,k,n,digit=1; //digit代表的是数字的位数 scanf("%d",&n); a[0]=1; s[0]=1; if(n==1)// 如果是1,阶乘和就是1,直接输出 printf("%d",s[

利用递归求阶乘

1 package com.d; 2 3 import java.util.Scanner; 4 5 public class Digui { 6 7 public static void main(String[] args) { 8 Digui d = new Digui(); 9 10 System.out.println("请输入一个整数"); 11 Scanner scan = new Scanner(System.in); 12 int a = scan.nextInt()

求阶乘及阶乘和

1 #求阶乘方法一 2 def f1(n) 3 if n == 1 4 return 1 5 else 6 return n * f1(n-1) 7 end 8 end 9 10 #求阶乘方法二 11 def f2(n) 12 i = 1 13 while n > 0 14 i *= n 15 n -= 1 16 end 17 return i 18 end 19 20 #求1到n的阶乘之和方法一 21 sum = 0 22 (1..43).each do | x | 23 sum = sum

1130: 零起点学算法37——求阶乘

1130: 零起点学算法37--求阶乘 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 2109  Accepted: 1328[Submit][Status][Web Board] Description 输入一个正整数n,计算它的阶乘 Input 输入一个正整数n(n<=10)(多组数据) Output 输出n的阶乘(每组数据一行) Sample Input 3 Sample Output 6

1131: 零起点学算法38——求阶乘和

1131: 零起点学算法38--求阶乘和 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 2719  Accepted: 1736[Submit][Status][Web Board] Description 输入一个正整数n(n<=10),计算 S=1!+2!+3!+...+n! Input 输入一个正整数n(n<=10)(多组数据) Output 输出S(每组数据一行) Sample Inpu

【GDOI 2011 DAY2 T3】零什么的最讨厌了 (快速求阶乘、中国剩余定理)

问题描述: 林记在做数学习题的时候,经常遇到这种情况:苦思冥想了很久终于把问题解出来,结果发现答案是0,久而久之林记在得到习题答案是0的时候就没有了做出一道难题的成就感.于是林记决定:以后出题,答案一定不能是0,例如求n!最低位非零数这样的习题就很不错了. 现在林记提出了一个更难一点的问题:求n!在K进制下的最低位非零数.其中K符合一些特殊的条件:K是由若干个互不相同的质数相乘得出来的,例如K=2,3,5,6,7,10…… 输入格式: 首先输入的第一行是一个整数Q,表示询问的个数. 接下来是Q个

light_oj 1138 求阶乘后导零的个数

light_oj 1138  求阶乘后导零的个数 N - Trailing Zeroes (III) Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice LightOJ 1138 Description You task is to find minimal natural number N, so that N! contains exactly Q