第74回【JavaScript】けた数の測定、足したり引いたり
現在取り組んでいるのは、paiza ラーニング問題集「条件分岐メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
JavaScript をゼロから勉強してみよう、のコーナー 74 回目です。
田舎ですから、出勤時間、雨の日は渋滞します。怖いな、と思うのが、驚くほど携帯を手にしている人が多い事です。そして、フラフラフラフラ車線をはみ出してきそうな運転をします。信号が青になっても進んでくれません。雨の日こそ、取り締まりをするべきなのでは?
それでは、今日も頑張ってみようと思います。
けた数の測定 (paizaランク D 相当)
整数Nが与えられます。Nのけた数を出力してください。
入力される値
N
入力値最終行の末尾に改行が1つ入ります。
期待する出力
N のけた数Dを出力してください。末尾に改行を入れ、余計な文字、空行を含んではいけません。
D
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ N は 0 以上 1,000 未満の整数
入力例
5
出力例
1
条件分岐メニューらしい解答が求められている。
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 < 10) {
console.log(1);
} else if (n < 100) {
console.log(2);
} else {
console.log(3);
}
});
Python
N = int(input())
if N < 10:
print(1)
elif N < 100:
print(2)
else:
print(3)
足したり引いたり (paizaランク C 相当)
整数N, A, B ( – 99 ≦ N, A, B ≦ 100 ) があります。以下の 2 つの操作をそれぞれ 1 回ずつおこなったとき、Nを 0 にできる場合はYES
を、できない場合はNO
を出力してください。
1. NにAを足す、またはNからAを引く
2. NにBを足す、またはNからBを引く
入力される値
N A B
入力値最終行の末尾に改行が1つ入ります。
期待する出力
YES
またはNO
を出力してください。末尾に改行を入れ、余計な文字、空行を含んではいけません。
YES
または
NO
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ N, A, B は – 99 以上 100 以下の整数
入力例
-10 8 2
出力例
YES
全パターンを考えるパターン。
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,a,b] = lines[0].split(/\s/).map(Number);
if (n + a + b == 0) {
console.log('YES');
} else if (n + a - b == 0) {
console.log('YES');
} else if (n - a - b == 0) {
console.log('YES');
} else if (n - a + b == 0) {
console.log('YES');
} else {
console.log('NO');
}
});
Python
N,A,B = map(int,input().split())
if N + A + B == 0:
print("YES")
elif N + A - B == 0:
print("YES")
elif N - A + B == 0:
print("YES")
elif N - A - B == 0:
print("YES")
else:
print("NO")
最後に
or 条件で繋ぐというのも考えましたが、多分、可読性がひどく落ちるんだと思う。このくらいのパターンであれば、羅列しておいても良い気がする。
ちゃんとやるのであれば、別の関数を作って bool を返すとかするのだろうけれど。そこまではやらないけれども。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません