本帖最后由 w270307032 于 2013-6-9 20:14 编辑
- 求出这列数列的第20项的值: 1,1,2,4,7,13...
- public class Demo {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println(f(7));
- }
- public static int f(int n) {
- if(n>0){
- if (n == 1 || n == 2) {
-
- return 1;
- }
- if(n==3)
- return 2;
-
- else {
- return f(n -1) + f(n - 2)+f(n-3) ;
- }
-
-
- }
- else{
-
- throw new RuntimeException("兄弟,你传错值了,栈溢出了");
- }
- }
- }
复制代码 楼主要求的是前面三项的和,所以f(1),f(2),f(3)都得指定,还有必须n>0;要不就会出现楼主的栈溢出的情况,能到int的负数去。其实n如果太大的话也会溢出的,但这个上限就看你机子内存了,但上限不好界定,不要和自己的电脑过不去{:soso_e113:} |