プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

n番目の階段に到達する方法を数える


n段の階段があります。 1人目からn番目の階段に行きます。彼/彼女が1つのステップで横断できる階段の最大数も与えられます。この情報を使用して、n番目の階段に行くための可能な方法を見つける必要があります。

各ステップで最大2つの階段を越えることができると考えてみましょう。したがって、この問題を解決するための漸化式を見つけることができます。 (n-1)番目の階段または(n-2)番目の階段のいずれかからn番目の階段に移動できます。つまり、ways(n)=Ways(n-1)+ Ways(n-2)。

入力と出力

Input:
The number of stairs, say 10 the maximum number of stairs that can be jumped in one step, say 2
Output:
Enter number of stairs: 10
Enter max stair a person can climb: 2
Number of ways to reach: 89

アルゴリズム

stairClimpWays(stair, max)

入力- 階段の数、1つのステップでの最大階段ジャンプ。

出力- 到達するための可能な方法の数。

Begin
   define array count of size same as stair number
   count[0] := 1
   count[0] := 1

   for i := 2 to stair -1, do
      count[i] := 0
      for j = 1 to i and j <= max; do
         count[i] := count[i] + count[i - j]
      done
   done
   return count[stair - 1]
End

#include<iostream>
using namespace std;

int stairClimbWays(int stair, int max) {
   int count[stair];    //fill the result stair using bottom up manner
   count[0] = 1;       //when there are 0 or 1 stair, 1 way to climb
   count[1] = 1;
   
   for (int i=2; i<stair; i++) {    //for stair 2 to higher
      count[i] = 0;
      for(int j=1; j<=max && j<=i; j++)
         count[i] += count[i-j];
   }
   return count[stair-1];
}

int countWays(int stair, int max) {    //person can climb 1,2,...max stairs at a time
   return stairClimbWays(stair+1, max);
}

int main () {
   int stair, max;
   cout << "Enter number of stairs: "; cin >> stair;
   cout << "Enter max stair a person can climb: "; cin >> max;
   cout << "Number of ways to reach: " << countWays(stair, max);
}

出力

Enter number of stairs: 10
Enter max stair a person can climb: 2
Number of ways to reach: 89

  1. Windows 11 でタスク バーをカスタマイズする 4 つの方法

    Windows 11 が主流になってからしばらく経ちました。それに伴い、その前身である Windows 10 に多くの変更が加えられました。 無数の改良点がある一方で、Windows 11 は Windows 10 の継続として歓迎され、外観が改善されています。これを証明するのが、デフォルトで中央に配置された新しいスタート メニューとタスクバーです。新しい Windows 11 には、透明度、クリック時のアニメーションなど、使用するのが楽しい他の多くの効果があります。 ただし、多くの人にとって、新しいタスクバーはテストに合格しません。ありがたいことに、解決する必要はありません。 Windo

  2. Windows 11 PC で BIOS に入る 3 つの方法

    Microsoft は、Windows 11 を実行するために TPM とセキュア ブートを要求することで、正しい方向に大胆な決定を下しました。長期的には、Windows 11 のセキュリティに関して Microsoft にとって有益です。良いニュースは、TPM モジュールがほとんどのラップトップで標準になったことです。 Windows 11 で TPM またはセキュア ブートを有効にするには、BIOS に移動するだけです。 BIOS や UEFI にアクセスする方法がわからなくても心配はいりません。あなたは正しい場所に来ました。いくつかの簡単な手順で、Windows 11 PC で BIOS