Node.jsバックアップアルゴリズム3


1. 11021 A+B-7

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

let input = [],
    i = 1,
    result = "";

rl.on("line", function (line) {
    input.push(line);
}).on("close", function () {
    const count = Number(input[0]);

    for (i; i <= count; i++) {
        const sum = input[i].split(" ").reduce(function (acc, cur) {
            return Number(acc) + Number(cur);
        }, 0);

        result += `Case #${i}: ${sum}\n`;
    }

    console.log(result);
    process.exit();
});

2. 11022 A+B-8

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

let input = [],
    i = 1,
    result = "";
function createText(arr) {
    let _result = "";
    let _sum = 0;
    const arrayLength = arr.length;

    for (let j = 0; j < arrayLength; j++) {
        if (j !== arrayLength - 1) {
            _result += `${arr[j]} + `;
        } else {
            _result += `${arr[j]}`;
        }

        _sum += Number(arr[j]);
    }

    return `${_result} = ${_sum}\n`;
}

rl.on("line", function (line) {
    input.push(line);
}).on("close", function () {
    const count = parseInt(input[0]);

    for (i; i <= count; i++) {
        result += `Case #${i}: ${createText(input[i].split(" "))}`;
    }

    console.log(result);

    process.exit();
});
  • を参照
    展開構文
    Restパラメータ
  • 2438星-1拍摄

    const fs = require("fs");
    const input = fs.readFileSync("/dev/stdin");
    
    function solution(loopCount) {
        let result = "";
        let i = 1;
    
        for (i; i <= loopCount; i++) {
            let j = 0;
            let starString = "";
    
            for (j; j < i; j++) {
                starString += "*";
            }
    
            result += starString + "\n";
        }
    
        console.log(result);
    }
    
    solution(input);
    二重砲口が鍵だ!

    2439星-2を撮影

    const fs = require("fs");
    const input = fs.readFileSync("/dev/stdin");
    
    function solution(loopCount) {
        let result = "",
            i = 0;
    
        for (i; i < loopCount; i++) {
            // 1.
            let j = loopCount - i - 1,
                // 2.
                k = i + 1,
                starString = "";
    
            for (j; j > 0; j--) {
                starString += " ";
            }
    
            for (k; k > 0; k--) {
                starString += "*";
            }
    
            result += starString + "\n";
        }
    
        console.log(result);
    }
    
    solution(input);
  • jは空白の個数で、入力が5の場合、最初の行が出力する空白の個数は4で、星の個数は1です.
    従って、jの値はinput(반복할 행의 갯수) - i(현재 행) - 1である.このj値が0より大きい場合、starString変数にスペースを繰り返し加算します.
  • kは星の個数を表し、入力が5の場合、5行目の出力の空白数は0、星の個数は5である.
    したがって、kの値はi(현재 행) + 1である.このk値が0より大きい場合、「*」を繰り返してstarString変数に加算する.