白俊2775は女性会長になる.cpp



<ソース>
#include <iostream>
using namespace std;
int getNum(int a, int b){
  if(b == 1)
    return 1;
  if(a == 0)
    return b;
  return (getNum(a-1, b) + getNum(a, b-1));
}

int main() {
  int T, k, n;
  cin>>T;
  for(int i=0; i<T; i++){
    cin>>k>>n;
    cout<<getNum(k, n)<<'\n';
  }
}
  • 変数
    int getNum(int a,int b):住民を救う再帰関数
    int T:テストケース数
    int k,n:レイヤ、番号
  • アルゴリズム
    1)数学アルゴリズムの問題に対しては,規則を探すことが重要であるようである.k層n号=k-1層n号+k層n-1号

    2)このように再帰関数を変換すると,2つのケースが発生する.
  • n=1:1:1に1人しか住んでいないので、プラス1でいいです.
  • k=0:0層にnを加えればよい.
  • で学んだこと
    再帰関数の重要性を認識しすぎた.
  • 残念と感じ
    この問題は繰り返し解決しなければならないと思ったが、結局できなかった.再帰関数のアルゴリズムについては本で熟知しなければならない.そしてルールを探せ!!!本当に大切な気がする気をつけて!