前提
とある数値が入力されたとして、その数値が九九(1-9までの掛け算表)で計算が可能な数値かを判定します。
もし入力された値が計算可能であれば Yes
と出力し、計算不可能であれば No
と出力します。
言語は JavaScript です。
コード
function Main(input) {
input = parseInt(input);
let canBeCaluculated = "No";
for (i = 1; i <= 9; i++) {
for (j = 1; j <= 9; j++) {
if (i * j === input) {
canBeCaluculated = "Yes";
} else {
break;
}
}
}
console.log(canBeCaluculated)
}
Main(10); // => YES
Main(300); // => NO
解説
やり方は2通り考えられます。
- 九九を全て試して入力値と同じものがあれば Yes を出力
- 入力値を1-9まで順番に除算していき、割り切れてかつ商が1以上9以下の整数であれば Yes を出力
今回は1でやりました。 for 文で掛ける側と掛けられる側を回して、入力値と同じであれば Yes
に変更してループを抜けるようにしています。
2のほうがスマートですし、計算回数も少ないので処理も速いですが、九九(合計81回の評価)しか行わないのであれば誤差です。
処理方法を迷ったときはなるべく簡単な方を選ぶように、、(自戒)