怎么手机变电脑软件(有没有什么可以用来写c语言程序的手机软件)
怎么手机变电脑软件,有没有什么可以用来写c语言程序的手机软件? 这里介绍2款可以编写C语言的手机软件,分别是C语言编译器和C++编译器(c4droid),这...
2023-02-11
数的阶乘,想必大家都不陌生,原理也很清楚,就是给定一个正整数,然后求出所有小于以及等于该正整数的积。
这里我们要清楚几点:
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 main(){ 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 main(){ factorial();//可以说,就是直接把主要代码这部分给拎出来,然后在主函数调用}其实可以发现,这与我们上面的直接在主函数里写的方法没什么差别,唯一的区别就是看起来更加直观一些,以及代码错落有致一点。
测试结果:

第三种:在主函数外写一个递归函数,也就是让子函数不停调用它自身。
与前两个方法相比,递归函数显然更好理解一些,也显然让代码的利用率更高了,因为0的阶乘是0,所以这应该单独进行判断,也就是得到结果为1,之后就是让它本身与比它小的数相乘了。
其实这个逻辑很好理解,给定数5,然后5去与factorial(4)相乘,同时factorial(4)又是4与factorial(3)相乘,与此推理下去,直到最小是与1相乘即可,那就满足了从1开始到它本身的所有数相乘。
#include<stdio.h>int factorial(int n){ if(n<=0){ return 1; } return n*factorial(n-1);//与比它小的正整数相乘}int main(){ int number = 0; scanf("%d", &number); printf("%dn",factorial(number)); //与之前相比,显然变得更简单了些}测试结果:

总的来说,阶乘其实蛮简单的,就是大家的思维要再打开一些,不要局限于只用一种方法来实现,多利用之前学过的一些方法,代码的利用率还能变高,也能提升自己的编程能力。
以上内容就是为大家推荐的阶乘c++语言程序函数(c语言必背100代码)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:阶乘c++语言程序函数(c语言必背100代码)
本文地址:https://www.xiaoyin02.com/shcs/99104.html
相关文章
怎么手机变电脑软件,有没有什么可以用来写c语言程序的手机软件? 这里介绍2款可以编写C语言的手机软件,分别是C语言编译器和C++编译器(c4droid),这...
2023-02-11
有一定基础的 C++ 学习者该如何学习 Windows 编程 首先,windows 编程,是一个特定的领域。默认的就是 windows GUI 程序。也就是windows的那套消息循环,消息(等...
2022-12-28
原文链接:https://hackernoon.com/build-a-game-engine-from-scratch-in-c 游戏开发一直很能激励学生学习高级计算机科学。可能有些人认为游戏是孩子们喜欢的,但对于标...
2022-12-26
学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器、宏汇编...
2022-12-20
复数称Complex Number,从英文上来看似乎它是“复杂的数”。其实并不然,它实际上指的是复合数,即由实部和虚部复合而成的数。它可以用下面的公式表示...
2022-11-28
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)