计算一个整数N的阶乘 【单循环】

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算一个整数N的阶乘 【单循环】相关的知识,希望对你有一定的参考价值。

题目描述
计算一个整数N的阶乘
输入

一个整数N, (0〈=N〈=12)
输出

整数N的阶乘.

用java做出来

参考技术A #include<stdio.h>
int main()

int N,i,s=1;
scanf("%d",&N);
while(N<=12&&N>=0)

if(N!=0)

for(i=N;i>0;i--)

s=s*i;

printf("%d",s);

else if(N==0)
printf("1");
printf("\n");
return 0;

阶乘计算

题目描述
输入一个正整数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

c++代码如下:

#include <stdio.h>
#include <stdlib.h>
int num[5000]; 
int jcjs(int num[],int n){
    num[0]=1;
    int len=1;
    int i;
    for(i=1;i<=n;++i){
        len=0;
        int p = 0;
        int jw=0;
        while(num[p]!=-1){ 
            num[p]*=i;
            num[p]+=jw;
            jw=0;  //进位加完置零 
            if(num[p]>=10){
                jw=num[p]/10;
                num[p]%=10;
            }
            p++;
            len++;
        }
        if(jw!=0){
            while(jw){ //进位值不一定是1位 要循环处理 
                num[p++]=jw%10;
                jw/=10;
                len++;
            }  
        }  
    }
    return len-1;
}
int main(int argc, char *argv[]) {
    int n;
    while(scanf("%d",&n)!=EOF){
        memset(num,-1,sizeof(num));
        int len = jcjs(num,n);
        for(len;len >=0;--len){
                printf("%d",num[len]); 
        }
        printf("
");
    }
    return 0;
}

java代码如下:

import java.math.BigInteger;
import java.util.Scanner;

public class Main{

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        BigInteger s=BigInteger.ONE;
        for(int i=1;i<=n;i++){
        s=s.multiply(new BigInteger(i+""));
        }
        System.out.println(s);
    }
}

python代码如下:

n=int(input())
i=1
s=1
while(i<=n):
    s*=i
    i+=1
print(s)











以上是关于计算一个整数N的阶乘 【单循环】的主要内容,如果未能解决你的问题,请参考以下文章

如何编写一个n的阶乘的程序

n的阶乘等于啥

C语言 求n的阶乘及阶乘和

n的阶乘中用多少个2,3,5,7因数

Python整数阶乘组合计算

十五:阶乘计算