C语言 求阶乘和

article/2025/9/12 21:51:34

法一:利用for循环

输入n 后,我们要计算1!+2!+...+n!,我们最容易想到的,也会写的是某单个数的循环,如

int n = 5; //当输入n = 5时
int i = 0;
int num = 1;//循环总和
int renum = 0;//累加总和
for(i = 1; i <= n; i++) // 5 的阶乘 1 * 2 * 3 * 4 * 5
{num *= i;
}

       那么对于一系列的阶乘(如标题),我们可以这样来看:以输入n = 5为例,5!进行循环之后将5减去1即可再次进行4!的循环,因此,我们可以利用2层for循环来实现标题所求.将上段代码作为内层, 外层for循环实现 n - 1的操作,代码如下:

//不全代码
for(int i = n; i >= 1; i--)<1{for(int j = 1; j <= n; j++){num *= j;}n--;//n减一次renum += num;对总和累加 }

<1:实现5! *4! *...*1!,能不能for(i = 1; i <= n; i++)?你可以试一试.

那么上述代码是否实现我们的目标呢?我们来走一遍代码:输入n = 5时,i = 5, j = 1;num = 1 * 1,j++,j = 2, num = 1 * 1 * 2, 以下类推, renum += num = 120;当n-- = 4时,i = 4, j = 1, num = 120 * 1,有问题了, num不在是从1开始,因此,我们这样修改代码,如下:

int n = 0;//int num = 1;int renum = 0;scanf("%d", &n);for(int i =n; i >= 1; i--){int num = 1;for(int j = 1; j <= n; j++){num *= j;}n--; }

 完整代码如下:

#include<stdio.h>int main(void)
{int n = 0;//int num = 1;int renum = 0;scanf("%d", &n);for(int i =n; i >= 1; i--){int num = 1;for(int j = 1; j <= n; j++){num *= j;}n--;renum += num;}printf("%d", renum);return 0;
}

法二:利用递归

      程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。----摘自 百度百科.

  自定义函数fac();如下:

	int n = 0;scanf("%d", &n);int renum = fac(n);//接收值printf("%d", renum);

函数fac()代码如下

int fac(int n)
{int num = 1;if(n >= 0)<2{for(int i = 1; i <= n; i++){num *= i;}return num + fac(n - 1);<3}return -1;<4
}

<2:递归需要有边界条件,即什么时候结束

<3这个代码是如何走的?

 <3:为什么返回-1呢?int num = 1时多加了1;

完整代码如下;

#include<stdio.h>int fac(int n)
{int num = 1;if(n >= 0){for(int i = 1; i <= n; i++){num *= i;}return num + fac(n - 1);}return -1;
}int main(void)
{int n = 0;scanf("%d", &n);int renum = fac(n);printf("%d", renum);return 0;
}


http://chatgpt.dhexx.cn/article/0BsttgJW.shtml

相关文章

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

题目&#xff1a; 题目分析&#xff1a; 首先要清楚阶乘定义&#xff0c;所谓 n 的阶乘&#xff0c;就是从 1 开始乘以比前一个数大 1 的数&#xff0c;一直乘到 n&#xff0c;用公式表示就是&#xff1a;1234…(n-2)(n-1)nn! 具体的操作: 利用循环解决问题&#xff0c;设循环变…

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

文章目录 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;得到在低维空间中的映射样…