基础训练 阶乘计算

阶乘计算

自己写的超时了,这里直接贴出别人的代码了

#include<iostream>
#include<string.h>
using namespace std;
int main(){
    int n,s,r=0,a[10005];
    cin>>n;
    memset(a,0,sizeof(a));
    a[0]=1;
    for(int i=1;i<=n;i++){
        for(int j=0;j<10001;j++){
            s=a[j]*i+r;
            a[j]=s%10;
            r=s/10;
        }
    }
     for(int i=10000;i>=0;i--){
        if(a[i]!=0){
            for(int j=i;j>=0;j--){
                cout<<a[j];
            }
            break;
        }
    }
    cout<<endl;
    return 0;
}

原文地址:https://www.cnblogs.com/A-Little-Nut/p/10328140.html

时间: 2024-08-30 12:42:45

基础训练 阶乘计算的相关文章

angular学习笔记(五)-阶乘计算实例(1)

<!DOCTYPE html> <html ng-app> <head> <title>2.3.2计算阶乘实例1</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></script> </

阶乘计算 高精度

基础练习 阶乘计算 时间限制:1.0s   内存限制:512.0MB 问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*…*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推. 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位. 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值. 输入格式 输入包含一个正整数n,n<=100

蓝桥杯 基础练习 BASIC-30 阶乘计算

基础练习 阶乘计算 时间限制:1.0s   内存限制:512.0MB 问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推. 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位. 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值. 输入格式 输入包含一个正整数n,n<=100

angular学习笔记(五)-阶乘计算实例(2)

<!DOCTYPE html> <html ng-app> <head> <title>2.3.3计算阶乘实例2</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></script> </

[BASIC-30] 阶乘计算

基础练习 阶乘计算 时间限制:1.0s   内存限制:512.0MB 问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推. 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位. 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值. 输入格式 输入包含一个正整数n,n<=100

十五:阶乘计算

题目:阶乘计算 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n.算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推. 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位. 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值.输入格式 输入包含一个正整数n,n<=1000.输出格式 输出n!的准确值.样例输入10样例输出3628800

6-10 阶乘计算升级版(20 分)

6-10 6-10 阶乘计算升级版(20 分) 本题要求实现一个打印非负整数阶乘的函数. 函数接口定义: void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过1000.如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印"Invalid input". 裁判测试程序样例: #include <stdio.h> void Print_Factorial ( const int N ); int main()

angular学习笔记(五)-阶乘计算实例(3)

同样是上一个例子,我们要求并非实时的计算结果,而是等到用户确定自己已经输入完毕,然后进行计算: <!DOCTYPE html> <html ng-app> <head> <title>2.3.4计算阶乘实例3</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script sr

编程之美—阶乘计算

题目: 1.给定一个整数N,那么N的阶乘N!末尾有多少个0?如N=10,N!=3628800,N!的末尾有两个0: 2.求N!的二进制表示中最低位1的位置. 问题1解法一: 基本思想: N!=K*10^M,那么N!末尾有M个0. N!=2^X*3^Y*5^Z,M=min(X,Z).因为X>=Z,所以M=Z. 计算i(i=1,2,---,N)的因为分解中5的指数,求和. ret=0; for(i=1;i<=N;i++) { j=i; while(j%5==0) { ret++; j/=5; }