新・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 + y が L[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;
}
});
与えられた条件に沿って 条件分岐。
【条件判定 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]);
}
}
});
Ç++ の解答コード例を書き換え。(ほとんど同じ)
コメント