首页 > 编程语言 >java 递归方法 计算1-100之间的所有自然数的和 计算1-100之间所有自然数的乘积

java 递归方法 计算1-100之间的所有自然数的和 计算1-100之间所有自然数的乘积

时间:2023-04-18 10:02:15浏览次数:39  
标签:所有 java 递归 自然数 计算 100 方法


package prectice;

/**
 * 递归方法的    使用
 * 
 * 递归方法的    定义:一个方法体内调用他自身
 * 
 * ①方法递归包含了一种隐式循环,它会重复执行某段代码,但这种重发执行无须循环控制。
 * ②递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似死循环。
 * 
 *	例1: 计算		1-100之间的所有自然数的和
 *	例2:计算		1-100之间所有自然数的乘积
 * @author ZZ1299
 *
 */
public class RecursionTest {
	
	public static void main(String[] args){
		
		
		
		
		//例1:计算		1-100之间的所有自然数的和
		//方式一:for循环
		int sum  =0 ;
		for (int i=1; i<=100;i++){
			sum += i;
		}
		
		System.out.println(sum);
		
		//小插曲:Illegal modifier for parameter getSum; only final is permitted____参数getSum的非法修饰符;只允许决赛
		//方式二:递归,自己调自己,自带循环
		
		RecursionTest test = new RecursionTest();
		
		int sum1 =test.getSum(100);
		System.out.println(sum1);
		
		public int getSum(int n){
			/**
			 * 假若输入的 n 是 3
			 * 运行顺序是:忽略 n==1,进入else   3+(3-1=2,这里的2继续进入getSum循环,2+(2-1=1),
			 * 这里的 1 继续进入循环,getSum循环,1),因此得到的是     3+2+1=6
			 * 
			 * 所以输出    6
			 */
			
			if(n ==1){
				return 1;
			}else{
				return n +getSum(n-1);
			}
		}  
		
		//例2:计算1-100之间的所有自然数的乘积		实际上是求n的阶乘  n!
		
		public int getSum1(int n){
			if(n ==1){
				return 1;
			}else{
				return n*getSum1(n-1)
			}
		}
	}
}

 

标签:所有,java,递归,自然数,计算,100,方法
From: https://blog.51cto.com/u_14381196/6202393

相关文章

  • java笔试题目——要求:仅打印出a=100,b=200,请写出method方法的代码
    //题目:publicclassTest{publicstaticvoidmain(String[]args){inta=10;intb=10;method(a,b);//需要在method方法被调用之后,仅打印出a=100,b=200,请写出method方法的代码。System.out.println("a="+a);S......
  • Java 实现Arrays 数组工具类
    ClassArrays是java工具包自带的非常强大的数组工具类,今天手工实现了一部分功能,部分参考实现如下publicclassMyArrays{//最大值/***获取int数组最大值**@paramarr:代遍历的数组*@return数组最大值*/publicintgetMax(......
  • java集合的stream操作
     //获取user里面所有id集合List<String>idList=list.stream().map(User::getId).collect(Collectors.toList());//list转换为id为key的mapMap<String,User>userMap=list.stream().collect(Collectors.toMap(User::getId,a->a,(k1,k2)->k1));//li......
  • java如何将JSONObject转成实体对象
    importcom.google.gson.Gson;importorg.json.JSONObject;//...JSONObjectjson=newJSONObject("{\"name\":\"JohnSmith\",\"age\":30}");Gsongson=newGson();Personperson=gson.fromJson(json.toString()......
  • Java-Day-10(Object 常用类 + JDK 源码 + 断点调试)
    Java-Day-10Object常用类equals方法==与equals==是一个比较运算符既可以判断基本类型,又可以判断引用类型如果判断基本类型,判断的是值是否相等如果判断引用类型,判断的就是地址是否相同,即判断是否是一个对象equals是Object类中的方法,只能判断引用类型默认......
  • Java-Day-11(项目零钱通 + 章节练习)
    Java-Day-11项目零钱通功能搭建菜单显示完成零钱明细完成收益入账完成消费功能实现退出完善,进行y/n确认判断入账、消费金额的合理性面向过程的代码packagecom.hspJava;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Scanne......
  • java进程保持运行
    将jar包放进服务器,运行java-jarxxx.jar是可以跑起来的,但是把XShell关闭后,就表示与服务器断开了,网页也就进不去了。那么让jar包一直处于运行状态的方法是nohupjava-jarxxx.jar&按下回车后再输入exit注意,一定要输入exit,才能让其一直运行,这是最重要的一步然后关闭XShell,也......
  • java 日志脱敏处理
    1publicstaticvoidmain(String[]args)throwsException{2Patternpattern=Pattern.compile("[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}");3Stringtext="\"Joe1\"55656kkk;[email protected]&......
  • java面试提问记录
    面试官-薪资问题?区间如18~22k 怎样考虑?工作职责范围,复杂度,如技术加管理?适当上浮(1k、2k)工作强度,比较常加班?适当上浮(1k、2k)工作福利,是否有,啥都没有?适当上浮(1k、2k) 面试者(自己)提问试用期是否能提供全薪?是否有减薪的操作?比如绩效......
  • Java语言特点?编译与解释并存?
    Java语言特点:·面向对象(封装,继承,多态);·平台无关性(Java虚拟机实现平台无关性);·支持多线程(C++语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而Java语言却提供了多线程支持);·支持网络编程并且很方便(Java语言诞生本身就是为简化网络......