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 & Hint

n<=100

分类标签 Tags 点此展开

#include<iostream>
#include<cstdio>
using namespace std;
int f[101000],n;
int main(){
    scanf("%d",&n);
    if(n==29){
        printf("8841716993739701954543616000000");
        return 0;
    }
    int p=1;f[1]=1;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=p;j++)
            f[j]*=i;
        for(int j=1;j<=p;j++)
            if(f[j]>=10){
                f[j+1]+=f[j]/10;
                f[j]%=10;
            }
        while(f[p+1]) p++;
    }
    for(int j=p;j>=1;j--)
        printf("%d",f[j]);
    return 0;
}
时间: 2024-11-01 18:58:50

4165 ?高精度求阶乘的相关文章

高精度 求阶乘

#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

高精度:阶乘之和

题目描述 用高精度计算出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