[英]Define a sequence recursively in Java
在這個問題上需要幫助,我在遞歸方面很不好。 我需要編寫一個執行此操作的方法:
輸入變量X是1到50之間的整數。該函數應以Y形式返回由以下項遞歸定義的序列的第X個項:
f(1) = 1 f(2) = 3 f(X) = 2*f(X-1) – 2*f(X-2) for X = 3,4,5,...
您的函數代碼應使用遞歸(而不是循環)
TBH我什至不知道從哪里開始。 任何幫助,將不勝感激。 這是我當前的代碼:
package p1parta;
import java.util.Scanner;
public class RecursiveSeq
{
public static void main(String args[])
{
System.out.println("Please enter a number:");
Scanner input = new Scanner(System.in);
int x = input.nextInt();
System.out.println(sequence(x));
}
public static int sequence(int x)
{
if(x == 1){
return 1;
}
if (x == 2){
return 3;
}
return 2 * sequence(x - 1) - 2 * sequence(x - 2);
}
}
我嘗試實現所示的解決方案,但是從程序中獲得的輸出與我手工計算的結果不匹配。 實際上,僅測試輸入3、4、5和6,唯一匹配的輸入是5
您的問題是一個完美的遞歸用例。 通常,遞歸模式為:
func(context)
if simple case
return simple answer
else
call func(simpler context)
and return combined results
嘗試使用此模式實施,如果有問題請回來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.