ABC156 D - Bouquet メモ

メモ

問題

atcoder.jp

メモ

// nの階乗
function fact(n){
  if (n<=0) return 1;
  
  let fact = n;
  while(--n){
    fact *= n;
  }

  return fact;
}
  • nCr
// nCr
function comb(n, r){
  if (r<=0) return 1;
  return fact(n) / (fact(r) * fact(n-r));
}
  • 繰り返し二乗法
// 繰り返し二乗法
function pow(a, n, p){
  if (n===1) return a%p;
  if (n%2 === 1) return (a * pow(a, n-1, p)) % p;
  let t = pow(a, n/2, p);
  return (t*t)%p;
}