原题目:
Write a recursive program that extends the range of the Fibonacci sequence. The Fibonacci sequence is 1, 1, 2, 3, 5, 8, etc., where each element is the sum of the previous two elements. For this problem, instead of only adding the last two elements to get the nth element, have the nth element be the sum of the previous k elements. For example, the 7th Fibonacci element summing the previous 3 elements would be 37. The sequence is 1 1 2 4 7 13. Be sure to check your code by running it with a k value of 2 and comparing the value to the value you would obtain with the regular Fibonacci sequence (they should be the same)
大概意思就是变形的Fibonacci数列:即数列中的某个数不再是前两个数相加之和,而是前K个数相加之和,而且还要用递归实现。
题目感觉比较有趣,所以摘抄到这里,随便看看。
private static int fib(int n,int k){ int tmp=0; if(n<k){ if(n==1||n==2) return 1; else if(n<1) return 0; for(int i=1;i<=n;i++){ tmp= tmp +fib(n-i,k); } } else{ for(int i=1;i<=k;i++){ tmp+=fib(n-i,k); } } return tmp; }
时间: 2024-10-26 19:50:37