使用递归方法写1-N的和以及N的阶乘

C语言练习题:递归求阶乘和 递归求阶乘和 编程题 任务描述 使用递归法计算1! + 2! + 3! + ... + n!1!+2!+3!+...+n!的值。 实现思路 求n的阶乘可以描述如下: n!=n*(n-1)!n!=n∗(n−1)! (n-1)!=(n-1)*(n-2)!(n−1)!=(n−1)∗(n−2)! (n-2)!=(n-2)*(n-3)!(n−2)!=(n−2)∗(n−3)! (n-3)!=(n-3)*(n-4)!(n−3)!=(n−3)∗(n−4)! … 2!=2*1!2!=2∗1! 1!=0!1!=0! 阅读详情

递归可以理解成方法自己调用方法自己,所以一旦使用不当就可能导致溢出错误
一般情况下是不使用递归方法的

一,首先不使用递归的方式分别写1-N的累加和N的阶乘
1-N的累加

public class Sum {
	public static int sum(int a) {//定义一个int返回值类型
		int result = 0;  
		for(int i=1;i<=a;i++) {//使用for循环 还可以这样写for(int i = a; i>=1; i--) 
			result += i ;
		}
		return result;//返回值类型不为void,所以必须有一个return 返回值
	}
	

N的阶乘
其实跟累加是一样的,只需要把+改成*即可

	public static int jiecheng(int a) {
		int result = 1;  //因为是相乘,所以result不能为0
		for(int i = 1; i<=a; i++) {//或者for(int i = a; i>=1; i--)
			result*=i;
		}
		return result;
	}

二,使用递归的方法分别写1-N的累加和N的阶乘

1-N的累加

	public static int sum1(int a) {
		if(a == 1) {   //当a等于1时,停止方法的继续调用,开始弹栈
			return 1;
		}
		return a + sum1(a-1);//其实这里就是a+  a-1  +(a-1)-1   +((a-1)-1)-1  +......直到a等于1 
	}

N的阶乘

	public static int jiecheng1(int a) {
		if(a == 1) {  
			return 1;
		}
		return a*jiecheng1(a-1);
	}
	
STM32F103C8T6+HX711实战:从零打造智能体重秤(附OLED显示与语音播报) 本文详细介绍了基于STM32F103C8T6微控制器和HX711称重模块,从零构建智能体重秤的完整实战教程。内容涵盖硬件选型、系统架构、驱动编写、数据滤波校准算法,并实现了OLED显示与语音播报功能。该项目是嵌入式学习的综合性实践,尤其适合作为毕业设计课题,帮助开发者掌握传感器应用、数据处理及人机交互等核心技能。 阅读详情

相关推荐

华为ENSP虚拟网络与本地物理网卡高效桥接实战指南

本文提供了一份详细的华为ENSP虚拟网络与本地物理网卡桥接实战指南。通过清晰的四步操作,帮助用户打破虚拟实验环境的“孤岛”限制,实现ENSP设备与真实局域网及互联网的互通,从而进行更真实的协议测试、软件升级和混合网络环境搭建。

qsc90123456的博客 536

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

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

JH13thpig的博客 15万+

基于stm32的数控恒压恒流电源设计方案

基于stm32的数控恒压恒流电源设计方案 基于stm32的数控恒压恒流电源设计方案 不包实物,可自己动手制作,可代做 本设计采用220V市电输入工频变压器,将220V交流电压降为24V交流电压,经过全桥整流加电容滤波,输出约32V直流电压.可调输出电压方案采用线性稳压调整器方案,即运放处于比较调整状态,运放输出驱动P型MOS管,电压输出端由电阻分压反馈至运放同相输入端,运放反相输入端由STM32单片机控制TLC5615数模转换器输入模拟电压,根据运放构成比较器原理,运放的同相端和反相端始终趋向于电压相等的特

m0_72265581的博客 7217

算1 - n的阶乘和末6位(超详细)

这里需要一点数学知识:要计算只包含加法, 减法和乘法的整数表达式除以正整数n 的余数, 可以在每步计算之后对n取余, 结果不变. 神马意思呢这句话,就以本题为栗子 计算(1!+2!+3!+...+n!)%1000000 注意是每步计算之后对1000000取余,所以计算步骤可以如下: 第1步:1!%1000000=1 第2步:2!%1000000=2 第3步:(1+2)%1000000=3 第4步:3!%1000000=6 第5步:(3+6)%1000000=9//第3步与第4步结果相加取余

m0_66606971的博客 3756

ubuntu24.04+RTX5090D 显卡驱动安装

本文详细介绍了在Ubuntu系统中更新内核、安装NVIDIA驱动的步骤。首先,通过mainline工具安装新版内核,并确保GCC版本兼容。接着,在无桌面环境下配置TTY模式,解决中文显示问题。然后,禁用默认的nouveau驱动,安装NVIDIA驱动,并选择开源驱动以避免黑屏问题。最后,重新启用图形界面,并通过测试软件验证显卡功能。整个过程涵盖了内核更新、驱动安装、TTY配置及图形界面恢复等多个关键步骤,适合需要手动配置NVIDIA驱动的用户参考。

妖米的博客 4671

Python自动化批量识别化学分子结构——从图片到SMILES/SDF的实战指南

本文提供了使用Python自动化批量识别化学分子结构图片的实战指南。详细对比了基于Molvec API的在线快速方案与本地部署OSRA工具的两种路径,包含完整的代码示例、环境配置及优化技巧,帮助化学研究者高效地将图片批量转换为SMILES或SDF格式,显著提升数据处理效率。

apple5的专栏 940

递归函数

递归 1.什么是递归 **递归:**如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解:函数内部自己调用自己, 这个函数就是递归函数 **注意:**递归函数的作用和循环效果一样,由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件return。 2.利用递归求1~n的阶乘 //利用递归函数求1~n的阶乘 1 * 2 * 3 * 4 * ..n function fn(n) { if (n == 1) { //结束条件 return

m0_46264231的博客 677

【人工智能】Warp 终端完整汉化方案(2026最新)

截至2026年5月,,仅完成了中文、日文、韩文等东亚语言的字符渲染支持,设置面板中无官方语言切换选项,相关中文UI功能需求仍在官方GitHub开源仓库的需求迭代队列中。

奶爸的编程之路,也就一周冷个三天 3100

【java】求1-n各阶乘之和

题目: 1-n阶乘之和 分析: 1的阶乘是1 2的阶乘是1*2 3的阶乘是1*2*3 4的阶乘是1*2*3*4 ......... 思路: 3阶乘的和其实上就是2阶乘的和+3的阶乘 4阶乘的和其实上就是3阶乘的和+4的阶乘 ....... 实现代码(递归思想): import java.util.Scanner; public class Test { public s...

JockLiu的博客 1万+

从零到一:Python+Playwright 实现动态网站全量数据采集实战(附反爬对抗与性能优化)

在动手之前,先明确武器优势: 2. 项目结构规划 为了代码可维护性,我们采用模块化结构: 三、核心实战:构建动态采集器 第一步:初始化“隐身”浏览器 普通启动容易被检测,我们需要注入一段 JS 脚本来抹除自动化特征。 第二步:处理无限滚动与动态加载 这是动态网站的核心难点。我们需要模拟人类滚动,并等待新数据加载完成。 第三步:登录态保持与复用 避免每次运行都重新登录。我们将 Cookie 保存到本地,下次直接加载。 第四步:主流程编排 将上述模块串联起来,并加入异常重试机制。 四、进阶优化:性能与反爬

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1161

2026.2.3:OpenClaw国内安装教程,国内网络使用,服务器部署,对接飞书

本文介绍了如何创建飞书应用并接入OpenClaw机器人的完整流程。主要内容包括:1)在飞书开放平台创建企业自建应用,添加机器人能力并开通相关权限;2)在Windows11系统上安装OpenClaw,完成配置文件的修改(需将bind改为"lan");3)配置MiniMax国内接口地址,重启gateway服务。整个过程涵盖了应用创建、权限设置、软件安装、服务配置等关键步骤,为开发者提供了详细的飞书机器人接入指南。

拥抱具身智能,昇腾Ascend C 3990

【C语言】统计1到n的阶乘和(递归与非递归)

文章目录前言一、非递归二、递归 前言 分别用递归和非递归的方式求得1到n的阶乘和 一、非递归 #include<stdio.h> int main() { int n; scanf("%d", &n); int i = 0; int j = 0; int ret = 1; int sum = 0; for (i = 1; i <= n; i++) { //注意将ret赋为1 ret = 1; for (j = 1; j <= i; j++)

weixin_63449996的博客 4884

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

用递归法求n的阶乘

#include void main(){ float f(int);//函数原型 int n; float sum; printf("你想求谁(整数)的阶乘:"); scanf("%d",&n); sum=f(n); printf("%d!=%.2f/n",n,sum);}float f(int n){

huangyiyun的专栏 2万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

递归和非递归分别实现求n的阶乘

#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;windows.h&gt; #pragma warning(disable:4996) int factorial(int n) { if (n == 0 || n == 1){ return 1; } else{ return n*factorial(n - 1...

LSFAN0213的博客 647

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

递归算法1——简单递归之求n的阶乘

递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题,能采用递归描述的算法通常有以下特征: 为求解规模为N的问题,设法将它分解成规模较小的问题,从小问题的解容易构造出大问题的解,并且这些规模问题较小的问题也能采用同样的分解方法,分解成规模更小的问题,并能从这些更小问题的解构造出规模较大问题的解。一般情况下,规模N=1时,问题的解是已知的。 递归是一种分而治之、将复杂...

凌空的桨 7万+

Problem E: 深入浅出学算法019-求n的阶乘

Problem E: 深入浅出学算法019-求n的阶乘 Time Limit: 1 SecMemory Limit: 64 MBSubmit: 5077Solved: 3148 Description 求阶乘,采用递归的方法,你会写吗? Input 多组测试数据,首先输入整数T表示组数 然后每一组在一行输入一个整数n( 1 <= n <= 10) Output...

weixin_30535843的博客 1110

用递归方法求n的阶乘【C语言实现】

#include <stdio.h> int main() { long fac(int n); int n,y; printf("input an integer number:"); scanf("%d",&n); y= fac(n); printf("%d!=%ld\n",n,y); return 0; } long fac(int n) { l...

NewGe6的博客 3万+

用递归方法求n的阶乘

解析在代码注释里面,源码也在下面。

weixin_73399382的博客 1万+

递归方法求n的阶乘

n的阶乘两种情况 1. n<=1,结果是1 2.n>1,结果是n* N(n-1) #include <stdio.h> int N(int n) { if(n<=1) return 1; else return N(n-1)*n;//关键思想 } int main() { int n=0; int ret=0; printf("请输入你想要求阶乘的数:"); scanf("%d",&n); ret=N(n); printf("

qq_63920363的博客 1万+

新手编程 使用方法递归实现求1到n的和以及n的阶乘

public class RecursionTest02{ public static void main(String[] args){ java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("请输入一个整数n:"); int n = s.nextInt();//,sum = 0; int result = sum(n); System.out.println(result); int r

Amlynooto的博客 1461

递归方法求n!阶乘

递归的定义:在定义一个过程或函数时,出现调用本过程或者是本函数的成分,称之为递归。 通常需要用到递归的方法: 定义是递归的。(例如n!,Fibonacci数列问题) 数据结构是递归的(单链表的数据结构,二叉树的数据结构)。 问题的求解方式是递归的(汉诺塔问题)。 //用递归和非递归两种方式求n!问题 #include&lt;iostream&gt; #include&lt;system_...

Lau's Blog 1万+

用递归求1~n的阶乘和

分析: (1):1~n的阶乘和说明需要外面用个for循环得到1~n的单值数; (2):每个数值的阶乘可以用递归的方式实现; (3):最终用一个变量sum来累加1~n的阶乘和; 概念:递归就是自己调用自己的概念,但是需要一个终止条件,这里的终止条件是当调用的值为1时直接返回退出递归调用; 代码如下: public class Test3 { public static void...

qq_44666176的博客 4510

python递归函数1到n求和_python代码之阶乘求和的方法

需求:阶乘:也是数学里的一种术语;阶乘指从1乘以2乘以3乘以4一直乘到所要求的数;在表达阶乘时,就使用“!”来表示。如h阶乘,就表示为h!;阶乘一般很难计算,因为积都很大。提问:求1+2!+3!+...+20!的和实现环境:python3编辑器:pycharm分析:1、阶乘的计算就是比较麻烦的一部分,用递归函数实现是比较好的方案,先定义一个递归函数实现求阶乘功能。def recursion(n)...

weixin_39848998的博客 4312

递归方法计算整数n的阶乘,1-n的累加

正整数N的阶乘:import java.util.Scanner;//递归算阶乘public class Demo2 { //定义一个算阶乘的方法jieCheng() public static int jieCheng(int num){ if(n==1){                          //n值为1时返回1,跳出方法,停止计算 return 1; } return...

AngleFlyyy的博客 4745

Java语言 使用递归的方法计算1到n的阶乘

描述 使用递归的方法输出1到n的阶乘。 分析 阶乘就是n*(n-1)(n-2)(n-3)*…21 递归必须要有结束条件,不然一定会发生栈内存溢出的错误。 代码 public static void main(String[] args){ //计算1-n的阶乘 System.out.println("请输入n的值:"); //调用Scanner方法输入n的值 java.util.Scanner s=new java.util.Scanner(System.in); int n

qq_45265364的博客 2143

c语言求n的阶乘和1到n阶乘之和

求n的阶乘n! 用递归方法定义阶乘函数即可 #include <stdio.h> int factorial(int n) { int result = 1; if(n > 1) { result = n*factorial(n-1); } else { result = 1; } return result; } void main() { int n = 7; int re

weixin_44737922的博客 8479
下一篇: 使用方法重载自定义一个打印输出方法取代System.out.println();
大锤997
博客等级 码龄6年 4粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值