五种C程序计算阶乘方法 c语言实现1到n的阶乘1*2*3*.....*n的累乘计算,使用不同方法实现,五种计算阶乘的方法

article/2025/9/12 21:50:49

题目:

题目分析:

       首先要清楚阶乘定义,所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n,用公式表示就是:1×2×3×4×…×(n-2)×(n-1)×n=n!
具体的操作: 利用循环解决问题,设循环变量为 i,初值为 1,i 从 1 变化到 n;依次让 i 与 sum 相乘,并将乘积赋给 sum。
1.    定义变量 sum,并赋初值 1;
2.    i 自加 1;
3.    直到 i >n 循环结束。

方法一:使用For循环----主函数内写出所有代码

代码示例如下:

#include <stdio.h>
int main()
{int i,n;double sum=1;  //sum定义为双精度浮点型scanf("%d",&n);//高版本编译器中使用scanf_sfor(i=1;i<=n;i++){sum=sum*i;  //for循环体--sum乘以i的值赋值给sum}printf("%d!=%lf",n,sum); //输出结果为浮点型数据,默认保留6位小数printf("\n");return 0;
}

代码运行结果如下:

 方法二:使用while循环----主函数内写出所有代码

                 思路:while表达式中判定循环停止的标准是i<=n,循环体只需要添加i自增就可。

代码示例如下:

#include <stdio.h>
#include <math.h>int main()
{int n,i=1,j=1;scanf("%d",&n);if(n>1&&n<=10)        //此次代码增加限制条件,现在最高运算整数10的阶乘{while(i<=n){j=j*i;i++;}printf("%d\n",j);}return 0;
}

代码运算结果如下:

 方法三:主函数外 使用函数递归方法实现----函数调用自身的思想 代码的利用率更高

               1.  函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数

               2.  递归函数不能定义为内联函数。

#include <stdio.h>int Fact(int n) //递归函数 
{int res=n;if(n>1)res=res*Fact(n-1);return res;
}int main() //主函数 
{int n,cnt;                 scanf("%d",&n);cnt=Fact(n);printf("%d\n",cnt);return 0;
}
#include<stdio.h>
int fun(int n)
{if(n==1||n==0) return 1;//如果参数是0或者1返回1return n*fun(n-1);//否则返回n和下次递归的积
}int main()
{int n;scanf("%d",&n);printf("%d\n",fun(n));return 0;
}

代码运行结果为:

 

方法四:主函数外写一个子函数 在主函数内使用直接进行调用该子函数的方法实现

更加直接美观、可读性强

代码示例如下:

#include<stdio.h>
void factorial()
{int number;int factorial = 1;scanf_s("%d", &number);for(int i=1; i<=number; i++) {factorial = i*factorial;//确保即便当number=0的时候,结果也为1}printf("%d ", factorial);
}
int main()
{factorial();//<==>直接把主要代码这部分给另拿出来,然后在主函数中进行调用
}

运行结果如下:

 

方法五:利用静态变量实现阶乘

代码示例如下:

#include<stdio.h>int main()
{int n, m = 1, pro;long fact(int);//实现阶乘的函数printf("Input n:");scanf_s("%d", &n);for (; m <= n; m++)pro = fact(m);printf("%d!=%ld\n", n, pro);
}long fact(int n)
{static long pro = 1;//pro即product---乘积pro = pro * n;return(pro);
}

代码运行结果如下:

 

 

编著注:以上对本小题的代码编写的多种方法,欢迎大家收藏借鉴并转发;

               以上代码仅供参考,如有问题欢迎大家在留言区批评指正;

               版权所有,翻印必究,如有雷同纯属巧合,转载请注明出处。

               By CRH380AJ2808 2022.04.20
————————————————
版权声明:本文为CSDN博主「CRH380AJ2808」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:


http://chatgpt.dhexx.cn/article/xYrW92tD.shtml

相关文章

毕设 深度学习卷积神经网络的花卉识别

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 今天学长向大家介绍一个机器视觉项目 基于深度学习卷积神经网络…

AlexNet实现花卉识别

AlexNet实现花卉识别 本人水平有限&#xff0c;如有错误&#xff0c;欢迎指出&#xff01; 1. AlexNet 1.1 简介 ​ AlexNet是由UToronto的Alex Krizhevsky、Hinton等人在2012年提出的8层神经网络模型&#xff0c;并获得了ILSVRC12挑战赛ImageNet数据集分类任务的冠军&#x…

基于CNN的花卉识别

程序和数据集地址&#xff1a;https://download.csdn.net/my 数据集准备&#xff1a; 如图是五种类别的花卉数据集&#xff0c;分别放在五个文件夹。 训练神经网络模型文件在CNN中 定义数据集地址和模型保存地址程序如下&#xff08;我用的是‘\’&#xff0c;建议用‘/’表示…

【实战】tensorflow 花卉识别

文章目录 实战&#xff1a;花卉识别数据集网络模型可视化画卷积图&#xff1a; 实战&#xff1a;花卉识别 数据集 数据集&#xff1a;tensorflow 花卉识别 该数据集是 分为 5 个类别 [‘雏菊’, ‘蒲公英’,‘玫瑰’,‘向日葵’, ‘郁金香’] 网络模型 可视化 画卷积图&#x…

毕业设计-基于深度学习的花卉识别分类

目录 前言 课题背景和意义 实现技术思路 一、花卉识别相关理论基础 二、基于 ResNeXt 和迁移学习的花卉种类识别 三、基于 EfficientNet 和迁移学习的花卉种类识别 实现效果图样例 最后 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后…

毕业设计 - 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 今天学长向大家介绍一个机器视觉项目 基于深度学习卷积神经网络…

【毕业设计】深度学习花卉识别系统 - 卷积神经网络 机器视觉

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长…

图片识别,人脸识别,植物识别,花卉识别,签到小程序,借助百度AI智能识别功能实现图片识别,人脸识别小程序

一&#xff0c;人脸签到效果图 我们做人脸识别签到&#xff0c;其实就是要拿识别的人脸和数据库里的人脸对比&#xff0c;相识度大于一定的值&#xff0c;就可以判定成功。 如我们识别的结果是98.295%&#xff0c;所以这里就可以认定为签到成功 1-1&#xff0c;效果图 1-1-…

基于 Tensorflow 2.x 从零训练花卉图像识别模型

一、数据集准备 本篇文章使用数千张花卉照片作为数据集&#xff0c;共分为5个分类&#xff1a;雏菊&#xff08;daisy&#xff09;、蒲公英&#xff08;dandelion&#xff09;、玫瑰&#xff08;roses&#xff09;、向日葵&#xff08;sunflowers&#xff09;、郁金香&#xf…

基于深度学习的花卉检测与识别系统(YOLOv5清新界面版,Python代码)

摘要&#xff1a;基于深度学习的花卉检测与识别系统用于常见花卉识别计数&#xff0c;智能检测花卉种类并记录和保存结果&#xff0c;对各种花卉检测结果可视化&#xff0c;更加方便准确辨认花卉。本文详细介绍花卉检测与识别系统&#xff0c;在介绍算法原理的同时&#xff0c;…

毕设 深度学习花卉识别 - python 机器视觉 opencv

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提…

怎么拍照识别植物的名称呢?教大家一个识别小妙招

怎么通过拍照片的方式来识别图片中的植物名称呢&#xff1f;在春季的时候&#xff0c;很多家长会选择带着小朋友去春游&#xff0c;去踏春&#xff0c;正是万物生长的季节&#xff0c;会萌生出很多新的植物。有的植物长相艳丽&#xff0c;很是好看&#xff0c;想要回家养一点&a…

接入植物识别功能快速识别万种植物花卉

作者&#xff1a;才能我浪费99 1.功能描述&#xff1a; 该请求用于识别一张图片&#xff0c;即对于输入的一张图片&#xff08;可正常解码&#xff0c;且长宽比较合适&#xff09;&#xff0c;输出植物识别结果。近期植物识别进行了能力升级——模型升级&#xff0c;Top1准确…

基于深度学习的花卉识别算法研究

1、数据集 本数据集由本人亲自使用手机进行拍摄采集&#xff0c;原始数据集包含了14万张图片&#xff0c;图片的尺寸为1024x1024&#xff0c;为了方便储存和传输&#xff0c;把原图缩小为224x224&#xff0c;并从中抽取了47000多张花卉的图片组成本数据集。本数据集一共有包含…

基于tensorflow、CNN网络识别花卉的种类(图像识别)

基于tensorflow、CNN网络识别花卉的种类 这是一个图像识别项目&#xff0c;基于 tensorflow&#xff0c;现有的 CNN 网络可以识别四种花的种类。适合新手对使用 tensorflow进行一个完整的图像识别过程有一个大致轮廓。项目包括对数据集的处理&#xff0c;从硬盘读取数据&#x…

基于神经网络的花卉识别系统,可以识别10种花的类型:向日葵、月季、玫瑰、仙人掌、牡丹等

基于神经网络的花卉识别系统&#xff0c;可以识别10种花的类型&#xff1a;向日葵、月季、玫瑰、仙人掌、牡丹等&#xff0c;精度可达95。 系统可手动自主选择图片导入识别&#xff0c;识别结果可通过标签形式标注在图片上生成到本地&#xff0c;便于归档和实时验证。 ID:6910…

基于深度学习的花卉识别

1、数据集 春天来了&#xff0c;我在公园的小道漫步&#xff0c;看着公园遍野的花朵&#xff0c;看起来真让人心旷神怡&#xff0c;一周工作带来的疲惫感顿时一扫而光。难得一个糙汉子有闲情逸致俯身欣赏这些花朵儿&#xff0c;然而令人尴尬的是&#xff0c;我一朵都也不认识。…

机器学习-花卉识别系统

介绍 机器学习&#xff0c;人工智能&#xff0c;模式识别课题项目&#xff0c;基于tensorflow机器学习库使用CNN算法通过对四种花卉数据集进行训练&#xff0c;得出训练模型。同时基于Django框架开发可视化系统&#xff0c;实现上传图片预测是否为玫瑰&#xff0c;蒲公英&…

基于Python机器学习实现的花卉识别

目录 问题分析 3问题求解 3 2.1. 数据预处理 3 2.1.1. 预处理流程 3 2.1.2. 预处理实现 4 2.2. 降维可视化 4 2.2.1. 降维流程分析 4 2.2.2. PCA 方法降维 4 从图中给出的结果得到各个阶段的用时 6 2.2.3. t-SNE 方法求解 7随机产生初始解&#xff0c;得到在低维空间中的映射样…

如何扫一扫识别花草树木?教你高效识别花草的小妙招

如何扫一扫识别花草树木&#xff1f;如今金秋九月&#xff0c;很快桂花、菊花、满天星等这些花竞相开放&#xff0c;秋高气爽&#xff0c;毫无疑问是出门游玩的好时节。除了一些常见的花草之外&#xff0c;我们还可能遇到许多不认识的花草&#xff0c;那么这个时候我们应该怎么…