使用递归函数实现1-100的加法运算
程序员文章站
2022-06-26 17:46:59
package day1_12;public class Demo02 { //用递归实现1+2+3+...+100的和 public static void main(String[] args) { //想实现多少内的递归加法运算,更改数就好 System.out.println("1-100的总和为:"+DiGuiAdd(100)); } //自定义一个递归函数 public static int DiGuiAdd(int...
package day1_12;
public class Demo02 {
//用递归实现1+2+3+...+100的和
public static void main(String[] args) {
//想实现多少内的递归加法运算,更改数就好
System.out.println("1-100的总和为:"+DiGuiAdd(100));
}
//自定义一个递归函数
public static int DiGuiAdd(int num){
//也就是初始值为1,如果只有1自己,没有办法进行相加
//所以返回,如果需要相加的数大于2则执行第二个return
if(num == 1){
return 1;
}
//A(n)=N+A(n-1)
return num+DiGuiAdd(num-1);
}
}
运行结果如下:
下面解释A(n)=N+A(n-1)是什么!!!
分步骤进行加法,分解如下:
1+2=3
1+2+3=6
1+2+3+4=10
1+2+3+4+5=15
…
1+2+3+4+5+6+…+100=5050
在这里,其实我把1作为一个单独的个体,因为进行加法运算至少要拥有两个数才可以进行,如果只有一个数,相加的结果也只是自己,所以返回自己。下面我分步骤进行解释。
- 1+2=3
- 1+2+3=6 这一步可以看成第一个1+2=3中3的值,再加上需要相加的第三个数也就是3,上一步骤的结果加上这一步骤需要相加的数,即:3+3=6
- 以此类推,下一个相加的数为4,上一步的结果为6,即:6+4=10
本文地址:https://blog.csdn.net/weixin_42773097/article/details/112527856