プログラマコードテスト練習<2つの整数の和>


🔎 <2つの整数の合計>



📝 答案用紙


今からコードテストの練習を始めて、私の恥ずかしい答えと他の人の答えを見てみましょう.

🚩 提出した答え

function solution(a, b) {
  var answer = 0;
  
  if (a <= b) {
    answer += (a + b) * (b - a + 1) * 0.5;
  } else {
    answer += (a + b) * (a - b + 1) * 0.5;
  }
  
  return answer;
}
まず2つの数を比較して、2つの数の間のすべての整数の和を求めます.このとき、2つの数はいずれも負の数であることに注意してください.
参照として、abの間のすべての整数の合計は、(a + b) * (b - a) / 2として計算される.

🚩 他人の答え


Math.abs()の答えを使う

function solution(a, b) {
  var answer = 0;

  return (a + b) * (Math.abs(a - b) + 1) * 0.5;
}
Math.abs()を用いて、abの符号にかかわらず、式を適用することができる.

📌 学習のポイント


等差数列の和


等差数列のn項aとm項bの間のすべての数の和は以下の通りである.
S=(∣a−b∣+1)∗(a+b)/2S=( ∣ a − b ∣ + 1 ) ∗ ( a + b )/2S=(∣a−b∣+1)∗(a+b)/2
すなわち,2項間の個数と2項の平均数を乗算することで,等差数列の2項間のすべての数の和を求めることができる.