阶乘c++语言程序函数 c语言必背100代码

一个数的阶乘大家都不陌生,原理很清楚,就是给定一个正整数,然后计算所有小于等于这个正整数的乘积。这里我们需要明确几点:1.负数没有阶乘,所以默认为正整数。2的阶乘,0是1,这是人为规定的,记住就好。所以,今天我们的重点是用C语言实现数的阶乘,但我提出一个要求:利用...

一个数的阶乘大家都不陌生,原理很清楚,就是给定一个正整数,然后计算所有小于等于这个正整数的乘积。

这里我们需要明确几点:

1.负数没有阶乘,所以默认为正整数。

2的阶乘,0是1,这是人为规定的,记住就好。

所以,今天我们的重点是用C语言实现数的阶乘,但我提出一个要求:利用前几天学过的知识,用函数和递归函数实现数的阶乘。

这样不仅可以复习函数和递归函数的方法,还可以巩固自己的C语言基础。

在C语言中正式实现数字的阶乘之前,我们先来看看逻辑。

一个数的阶乘,除了0的阶乘是1,正整数的阶乘是所有小于等于它的乘积。

给定一个数5,那么5的阶乘就是5!=1x2x3x4x5 = 120 .

这里需要用一个循环,就是可以迭代小于5的数。

遍历1,2,3,4,5后,连续相乘。

初始值为1时,第一次乘法为1,第二次乘法为1和2,直到第五次乘法为前四次乘法的乘积乘以5,最后得到120。

首先给出流程图给大家理解。

有三种方法来实现代码。

第一种:普通的直接把所有代码写在主函数里。

这个方法比较直观,就是遍历一个给定的数,从1开始到自身,然后不断相乘。注意,我一开始在这里用了一个给定的数相乘,但实际上这是有问题的,我还是要从1开始。毕竟1的阶乘是从1开始的。

#include<stdio.h>int ***in(){ int number; int factorial = 1;//因为factorial是阶乘的英文 scanf("%d", &number); for(int i=1; i<=number; i++) { factorial = i*factorial;//这样是确保即便当number=0的时候,结果也为1 } printf("%d ", factorial);}

测试结果:

第二:在主函数外面写一个子函数,然后在主函数里面直接调用子函数。

#include<stdio.h>void factorial(){ int number; int factorial = 1;//因为factorial是阶乘的英文 scanf("%d", &number); for(int i=1; i<=number; i++) { factorial = i*factorial;//这样是确保即便当number=0的时候,结果也为1 } printf("%d ", factorial);}int ***in(){ factorial();//可以说,就是直接把主要代码这部分给拎出来,然后在主函数调用}

其实可以发现,这和上面直接写在主函数里的方法没什么区别。唯一不同的是,它看起来更直观,代码也不完整。

测试结果:

第三:在主函数之外写一个递归函数,就是让子函数不断调用自己。

相比前两种方法,递归函数显然更容易理解,也明显使得代码的利用率更高。因为0的阶乘是0,这个要分开判断,也就是结果是1,然后乘以一个比它小的数。

其实这个逻辑很好理解。给定数字5,那么5乘以阶乘(4),阶乘(4)再乘以阶乘(3)。以此推理下去,直到最小值乘以1,满足所有数从1到自身的乘法。

#include<stdio.h>int factorial(int n){ if(n<=0){ return 1; } return n*factorial(n-1);//与比它小的正整数相乘}int ***in(){ int number = 0; scanf("%d", &number); printf("%dn",factorial(number)); //与之前相比,显然变得更简单了些}

测试结果:

摘要

总的来说,阶乘其实挺简单的,就是要多开一点思路,而不是局限于一种方法。多利用一些我们之前学过的方法,可以提高代码的利用率,提高我们的编程能力。

本文来自弑魂战神投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/502760.html

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

相关推荐

  • 阶乘公式

    阶乘1的主要公式任意大于1的自然数,n阶乘,代表方法n!= 1 2 3 n或n!=nn1!2n的双阶乘当n为奇数时,表示所有不大于n的奇数的乘积,如7!=1357 3当n为偶数时,表示不超过n。阶乘1的主要公式任意大于1的自然数,n阶乘,代表方法n!= =123n2n双阶乘当n为奇数时,表示所有不大于

    2023-05-29 14:37:01
    572 0
  • c语言阶乘函数怎么写 c语言圆的面积编程

    递归函数topic -C语言0|前言本节主要研究一种嵌套自己函数调用的方法——递归调用。1|示例例如,给定整数n,计算并输入阶乘n!这个项目。阶乘函数的定义:int factorial(int n){ int product; for (int i = 1; i <= n; i++){ product = product * i; } return product; }这

    2023-05-13 15:46:01
    726 0
  • 阶乘c++语言程序函数 c语言必背100代码

    一个数的阶乘大家都不陌生,原理很清楚,就是给定一个正整数,然后计算所有小于等于这个正整数的乘积。这里我们需要明确几点:1.负数没有阶乘,所以默认为正整数。2的阶乘,0是1,这是人为规定的,记住就好。所以,今天我们的重点是用C语言实现数的阶乘,但我提出一个要求:利用

    2023-04-13 18:22:01
    145 0
  • c语言中阶乘怎么表示 c语言实现n的阶乘三种方法

    一个数的阶乘大家都不陌生,原理很清楚,就是给定一个正整数,然后计算所有小于等于这个正整数的乘积。这里我们需要明确几点:1.负数没有阶乘,所以默认为正整数。2的阶乘,0是1,这是人为规定的,记住就好。所以,今天我们的重点是用C语言实现数的阶乘,但我提出一个要求:利用

    2023-03-30 03:40:01
    174 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信