【条件判定1】郵便料金《新・Bランクup》

新・Bランクレベルアップメニュー【条件判定 1】郵便料金

【条件判定 1】郵便料金 コード 1

reader.on('close', () => {
   const [y, x, h] = lines[0].split(' ').map(Number);  // 縦 y(cm), 横 x(cm), 高さ h(cm) 
   const L = lines[1].split(' ').map(Number);  // サイズ
   const M = lines[2].split(' ').map(Number);  // 料金
   switch (h <= L[0]) {
   case true:  // h がl_1 cm 以下
      if (Math.max(x, y) <= L[1]) {  // x, y の長い方が L[1] 以下
         console.log(M[0]);  //・・・m_1(円)
      } else if (x + y <= L[2]) {  // x + yL[2] 以下
         console.log(M[1]);  // M[1](円)
      } else {  //それ以外の場合
         console.log(M[2]);  // M[2](円)
      }
      break;
   case false:  //それ以外の場合
      if (Math.max(x, y, h) <= L[3]) {  // x, y, hのうち最も長いものが L[3] 以下
         console.log(M[3]);  // m_4(円)
      } else if (x + y + h <= L[4]) {  // 縦と横と高さの長さの和が L[4] 以下
         console.log(M[4]);  // M[4](円)
      } else {
         console.log(x * y * h * M[5]);
      }
      break;
   }
});
hogeちゃんの画像

与えられた条件に沿って 条件分岐。

【条件判定 1】郵便料金 コード 2/2 (C++実装例参照)

reader.on('close', () => {
   const [y, x, h] = lines[0].split(' ').map(Number);   
   const L = lines[1].split(' ').map(Number);
   const M = lines[2].split(' ').map(Number);
   if (h <= L[0]) {
      if (Math.max(y, x) <= L[1]) {
         console.log(M[0]);
      } else if (y + x <= L[2]) {
         console.log(M[1]);
      } else {
         console.log(M[2]);
      }
   } else {
      if (Math.max(y, x, h) <= L[3]) {
         console.log(M[3]);
      } else if (y + x + h <= L[4]) {
         console.log(M[4]);
      } else {
         console.log(y * x * h * M[5]);
      }
   }
});
hogeちゃんの画像

Ç++ の解答コード例を書き換え。(ほとんど同じ)

コメント