💬
AOJ
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 つの数の交換
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