C语言编程 输入N 求N的阶乘

C语言编程 输入N 求N的阶乘,第1张

输入一个正整数n,输出n!/#include <stdioh>                      //编译预处理命令

int factorial(int n);                   //函数声明

int main(int argc, char const argv[])  //主函数

{  

int n;                              //变量定义

 

scanf("%d", &n);                    //输入一个整数

 

printf("%d\n", factorial(n));       //调用函数计算阶乘

return 0;

}int factorial(int n)                    //定义计算n!的函数

{

int fact = 1;  

for (int i = 1; i <= n; ++i)

 

{     

fact = facti;

 

}

return fact;

}

特点

1. C语言是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行 *** 作,而这三者是计算机最基本的工作单元。

2.C语言是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大。

4. C语言适用范围大。适合于多种 *** 作系统,如Windows、DOS、UNIX、LINUX等等;也适用于多种机型。C语言对编写需要硬件进行 *** 作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。

程序源代码:

/

计算大数的阶乘,算法的主要思想就是将计算结果的每一位用数组的一位来表示:如要计算5!,那么首先将

(1)

a[0]=1,然后a[0]=a[0]2,a[0]=2,

(2)

a[0]=a[0]3,a[0]=6

(3)

a[0]=a[0]4,a[0]=24,此时a[1]=2,a[0]=4

/

public

class

Factorial

{

static

int

a[]

=

new

int

[10000];

static

void

factorial(int

n)

{

for(int

i=2;

i<

alength;

i++)

a[i]

=

0;

//将数组元素初始化

a[0]

=

1;

//用数组的一项存放计算结果的位数

a[1]

=

1;

//将第一项赋值为一

for(int

j=

2;

j

<=

n;

j++)

{

int

i=1;

int

c

=

0;

//c表示向高位的进位

for(;

i

<=

a[0];

i++)

{

a[i]

=

a[i]

j

+

c;//将来自低位的计算结果和本位的结果相加

c

=

a[i]

/

10;

a[i]

=

a[i]

%

10;

}

for(;

c

!=

0;

i++)

{

a[i]

=

c%10;

c

=

c

/

10;

}

a[0]

=

i

-

1;

#include<stdioh>

void main()

{

int i=1,j=0,k=10;//i是每次的自然数自增1,j是每次相乘后的结果统计,k是你想要输入的数字

printf("请输入一个数字");

scanf("%d",&k);

do

{

j=ji;

i++;

}while(i<=k);

printf("%d\n",j);

}

利用阶乘的定义求解阶乘     

#include<stdioh>

void main()   

    int i,n;     

    long f=1;   

    scanf("%d",&n);

    for(i=1;i<=n;i++)

        f=fi;   

    printf("%d!=%ld",n,f);

}    

递归方法求阶乘

#include "stdioh"

long fact(int n)

{  

    long s;  

    if(n<=1)

        s=1; 

    else     

        s=nfact(n-1); 

    return s;

}    

void main()

{

    int num;   

    scanf("%d",&num);   

    printf("%d!=%ld\n",num,fact(num)); 

}

import javautilScanner;

public class A{

//下面的方法是对单个数求阶乘,并返回

public static int jieCheng(int n){

int sum=1;

for(int i=1;i<=n;i++){

sum=i;

}

return sum;

}

//下面是对所有数求阶乘,再全部相加,并返回

public static int add(int n){

int sum=0;

for(int i=1;i<=n;i++){

sum+=jieCheng(i); //调用上面的方法,对单个求阶乘,再全部相加

}

return sum;

}

public static void main(String[] args){

Scanner input=new Scanner(Systemin);

Systemoutprintln("请输入数字:");

int n=inputnextInt();

Systemoutprintln("运算得到:"+add(n));

}

}

//总结:此题有个特点,n等于要相加的数字的总数,也等于要求阶乘的最大数

def little_than_50(x):

    if x <= 50:

        return True

    else:

        return False

def calculate_factorial(x):

    if x <= 1:

        return 1

    else:

        return xcalculate_factorial(x-1)

while True:

    n = int(input("Input a number for calculating factorial:"))

    if little_than_50(n):

        break

    else:

        print("{} is out of range,please input again!"format(n))

print("The factorial of {} is {}"format(n, calculate_factorial(n)))

以上就是关于C语言编程 输入N 求N的阶乘全部的内容,包括:C语言编程 输入N 求N的阶乘、2、编写一个求阶乘的方法,然后调用它利用公式、求助:C语言中用do while循环编写计算阶乘的程序~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9269053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存