モンキークライミングを再帰的に解決する

トピック:

猿の登り: N 段 (0<N<=50) があり、猿は一度に 1 または 3 段しかジャンプしません。N を入力し、猿が段の終わりに到達するまでに何通りあるのかを出力します。

再帰的に解く:

public static void test(){
    スキャナscanner=new Scanner(System.in); 
    int n=Integer.parseInt(scanner.nextLine()); 
    スキャナー.close(); 
    int num=count(0,n,n,0); 
    System.out.println(num); 
public static int count(int hasFinish,int noFinish,int n,int count){ 
int 
    countX=count; 
    int hasFinishN=hasFinish; 
    int noFinishN=noFinish; 
    if (hasFinishN==n){ 
        return countX+1; 
    if (hasFinishN<n){ 
    hasFinishN 
        =hasFinishN+1; 
        noFinishN=noFinishN-1; 
      countX=count(hasFinishN,noFinishN,n,countX); 
    } 
    if (noFinish+1>=3){ 
        =hasFinishN-1+3;
        noFinishN=noFinishN+1-3; 
       countX=count(hasFinishN,noFinishN,n,countX); 
    countX を返し
    ます。
}

おすすめ

転載: blog.csdn.net/qq_43780761/article/details/126863526