トピック:
猿の登り: 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 を返し ます。 }