递归实现连续整数求和及阶乘
package com.kite.test.recursion;
public class Recursion {
public static void main(String[] args) {
// 递归实现连续整数1~n的和
int sum = calSum(100);
System.out.println("递归实现连续整数1~n的和:" + sum);
// 递归实现连续整数1~n的和
int sum2 = calSum2(1);
System.out.println("递归实现连续整数1~n的和:" + sum2);
// for循环实现连续整数1~n的和
int sum3 = calSum3(100);
System.out.println("for循环实现:sum3=" + sum3);
// 递归实现连续整数1~n的阶乘
int result = calResult(5);
System.out.println("递归实现连续整数1~n阶乘:result="+result);
}
/**
* 递归实现1,2,3,4,······n 的和
*
* @param n
* @return
*/
public static int calSum(int n) {
if (n == 1) {
return 1;
}
return n + calSum(n - 1);
}
/**
* 递归实现连续整数的和
*
* @param n
* @return
*/
public static int calSum2(int n) {
if (n == 100) {
return 100;
}
return n + calSum2(n + 1);
}
/**
* for循环实现连续整数的和
*
* @param n
* @return
*/
public static int calSum3(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
/**
* 递归实现连续整数的阶乘
* @param n
* @return
*/
public static int calResult(int n){
if(n==1){
return 1;
}
return n*calResult(n-1);
}
}