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

这篇博客介绍了如何使用非递归的循环方式以及递归方法来计算1到N的累加和以及N的阶乘。在非递归方式中,通过简单的for循环实现,而在递归版本中,方法会调用自身进行计算,需要注意防止溢出。递归虽然简洁,但不推荐在所有情况下使用,因为它可能导致栈溢出错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

一,首先不使用递归的方式分别写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);
	}
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值