第72回【JavaScript】3 の倍数判定、2 つの倍数判定、偶奇の判定

現在取り組んでいるのは、paiza ラーニング問題集「条件分岐メニュー」になります。

はじめに

猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。

JavaScript をゼロから勉強してみよう、のコーナー 72 回目です。

業務が立て込んでいて、勉強の時間が集中して取れない状況です。そんなときでも、毎日少しでも勉強を続けることだけは意識しています。

それでは、今日も頑張ってみようと思います。

3 の倍数判定 (paizaランク D 相当)

整数Nが与えられます。Nが 3 の倍数の場合はYESを、そうではない場合はNOを出力してください。


入力される値

N

入力値最終行の末尾に改行が1つ入ります。


期待する出力

YESまたはNOを出力してください。

YES

または

NO

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・ N は 1 以上 1,000 未満の整数


入力例

6

出力例

YES

3 の倍数。3 ですか。アホになるやつ。懐かしいですね。

JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  const n = Number(lines[0]);
  if (n % 3 == 0) {
      console.log('YES');
  } else {
      console.log('NO');
  }
});
Python
N = int(input())
if N % 3 == 0:
    print("YES")
else:
    print("NO")

2 つの倍数判定 (paizaランク D 相当)

整数Nが与えられます。Nが 3 の倍数かつ 5 の倍数の場合はYESを、そうではない場合はNOを出力してください。


入力される値

N

入力値最終行の末尾に改行が1つ入ります。


期待する出力

YESまたはNOを出力してください。

YES

または

NO

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・ N は 1 以上 1,000 未満の整数


入力例

15

出力例

YES

かつ、なので、AND 条件でやる。15 の倍数じゃダメだろうか、とは疑問に思わないこととする。

JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  const n = Number(lines[0]);
  if (n % 3 == 0 && n % 5 == 0) {
      console.log('YES');
  } else {
      console.log('NO');
  }
});
Python
N = int(input())
if N % 3 == 0 and N % 5 == 0:
    print("YES")
else:
    print("NO")

偶奇の判定 (paizaランク D 相当)

長さ N の数列Aが与えられます。この数列に含まれる偶数の要素の個数と、奇数の要素の個数を答えてください。


入力される値

N
A1 A2 ... AN

入力値最終行の末尾に改行が1つ入ります。


期待する出力

偶数の要素の個数Eと、奇数の要素の個数Oを半角スペース区切りで出力してください。末尾に改行を入れ、余計な文字、空行を含んではいけません。

E O

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・ N は 1 以上 1,000 未満の整数
・ A の各要素の値は 0 以上 100 未満


入力例

5
1 2 3 4 5

出力例

2 3

偶奇判定は定番です。

JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  const n = Number(lines[0]);
  const a = lines[1].split(/\s/).map(Number);
  let e = 0;
  for (let i = 0; i < n; i++) {
      if (a[i] % 2 == 0) {
          e++;
      }
  }
  console.log(e,n-e);
});
Python
N = int(input())
A = list(map(int,input().split()))
E = 0
for a in A:
    if a % 2 == 0:
        E += 1
print(E,N-E)

最後に

どちらもよくあるパターンだったので、難しいことはなかったです。後は、書き方に慣れるだけです。相変わらずカッコを忘れたり、セミコロンがコロンだったり、凡ミスをすることが多い。情けない。

剰余計算は比較的なんにでも使えるパターンだと思うので、間違いなく書けるようになっておきたいものです。

引き続き、よろしくお願いいたします!

Python の第72回はこちら