💬

AOJ

2022/05/08に公開

let x = require("fs").readFileSync("/dev/stdin", "utf8").split( );

let x = require("fs").readFileSync("/dev/stdin", "utf8”);

let array = require("fs").readFileSync("/dev/stdin", "utf8").split(" ").map(Number);

let x = require("fs").readFileSync("/dev/stdin", "utf8");
let array = x.split(" ").map(Number); // 空白区切りで分割する

小数点以下切り捨て
小数点以下を切り捨てるにはMath.floorメソッドを使用します。以下の例では3が出力されます。

let a = 3.14;
console.log(Math.floor(a));

小さい順に並べる

配列.sort()

整数の間に1つの空白を入れる

.join(" ")

改行

.split("\n")

文字列の両端の空白を削除

trim()

for文

for ( 初期化処理; 条件式; 反復処理 ){
処理
}

sort関数

sort関数は引数に関数を指定でき、関数でソートのルールを定義できる。
関数を指定すると、配列の要素2つを取り出して関数に引数として渡してソートする。

関数の戻り値が正の時 → 引数1を引数2の後ろに並べ替え。
関数の戻り値が負の時 → 引数1を引数2の前に並べ替え。
関数の戻り値が0の時 → 何もしない。

var array = [922,1,20];
// 戻り値が正(a-bの差が正)のとき、aをbの後ろに並べ替え
// 戻り値が負(a-bの差が負)のとき、aをbの前に並べ替え
array.sort(
  function(a,b) {
    return a - b;
  }
);

// [1, 20, 922]
console.log(array);

2 つの数の交換

https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/3/ITP1_3_C

let data = require("fs").readFileSync("/dev/stdin", "utf8").trim().split(/\n/);
for (let i = 0; i < data.length - 1; i++){
    let [a,b] = data[i].trim().split(/\s/).map(Number);
    if (a > b) {
        console.log(b,a);
    } else {
        console.log(a,b);
    }
}

割り算

let [a,b] = require("fs").readFileSync("/dev/stdin", "utf8").split(" ").map(Number); 
const d = Math.floor(a/b);
const r = a%b;
const f = (a/b).toFixed(5);
console.log(d+" "+r+" "+f);

円の面積と円周

円周率を取得するにはMath.PIと記述

const input = require('fs').readFileSync('/dev/stdin', 'utf8');
const r = parseFloat(input);
const n = Math.PI

console.log(r*r*n+" "+r*2*n);

#4 計算機

let list = require('fs').readFileSync('/dev/stdin', 'utf8').split("\n");
for(let i=0; i < list.length; i++){
    let li = list[i].split(" ");
    let x = parseInt(li[0]);
    let op = li[1];
    let y = parseInt(li[2]);
    if(op == "+"){
        console.log(x + y);
    } else if(op == "-"){
        console.log(x - y);
    } else if(op == "*"){
        console.log(x * y);
    } else if(op == "/"){
        console.log(Math.floor(x / y));
    } else{
        break;
    }
}

#4 最小値、最大値、合計値

const lines = require("fs").readFileSync("/dev/stdin", "utf8").split("\n");
const numbers = lines[1].split(" ").map(Number);

x = Math.min(...numbers);
y = Math.max(...numbers);
z = numbers.reduce((a, c) => a + c);

console.log(x + " " + y + " " + z);

#5 長方形の描画

同じ文字列の繰り返し String.repeatメソッド

//構文 count=繰り返す数
let result = repeatString.repeat( count );
console.log('*'.repeat(10)); // **********
const input = require('fs').readFileSync('/dev/stdin', 'utf8').split(/\n/);
for (let i = 0; i < input.length; i++) {
    let [a, b] = input[i].split(' ').map(Number);
     if (a === 0 && b === 0) {
        break;
         }
    for (let j = 0; j < a; j++) {
        console.log('#'.repeat(b));
    }
    console.log('');
}

#5 フレームの描画

let a = require('fs').readFileSync('/dev/stdin','utf8').split`\n`;
for(let i=0;a[i]!="0 0";i++){
    [x,y]=a[i].split` `.map(Number);
    console.log("#".repeat(y)+"\n"+("#"+".".repeat(y-2)+"#\n").repeat(x-2)+"#".repeat(y)+"\n");
}

Discussion