代码来自闵老师”日撸 Java 三百行(11-20天)“,链接:https://blog.csdn.net/minfanphd/article/details/116974461
今天的内容是递归,整体来说比较简单。第一个函数是实现1加到N,第二个函数是计算第n个斐波那契数。代码如下:
package datastructure;
/**
*
* Recursion. A method can (directly or indirectly) invoke itself.
* The system automatically creates a stack for it.
*
* @author WX873
*
*/
public class Recursion {
/**
* ******************************************************
* Sum to N. No loop, however a stack is used.
*
* @param paraN The given value.
* @return The sum.
* ******************************************************
*/
public static int sumToN(int paraN) {
if (paraN <= 0) {
return 0;
}//of if
return sumToN(paraN - 1) + paraN;
}//of sumToN
/**
* ******************************************************
* Fibonacci sequence.
*
* @param paraN The given value.
* @return The nth value of fabonacci.
* ******************************************************
*/
public static int fibonacci(int paraN) {
if (paraN <=0) {
return 0;
}if (paraN == 1) {
return 1; //因为斐波那契数是前两项相加,n为1时没有前两项。
}//of if
return fibonacci(paraN-1) + fibonacci(paraN-2);
}//of Fibonacci
/**
* ******************************************************
* The entrance of the program.
* @param args Not used now.
* ******************************************************
*/
public static void main(String args[]) {
int tempValue = 0;
tempValue = 2;
System.out.println("The sum of 1 add to " + tempValue + " is " + sumToN(tempValue));
System.out.println("The " + tempValue + "th fabonacci number is " + fibonacci(tempValue));
tempValue = 10;
System.out.println("The sum of 1 add to " + tempValue + " is " + sumToN(tempValue));
System.out.println("The " + tempValue + "th fabonacci number is " + fibonacci(tempValue));
tempValue = 20;
System.out.println("The sum of 1 add to " + tempValue + " is " + sumToN(tempValue));
System.out.println("The " + tempValue + "th fabonacci number is " + fibonacci(tempValue));
}//of main
}//of Recursion
运行结果如下: