Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

九九で計算できる数値かどうかを判定する

More than 1 year has passed since last update.

前提

とある数値が入力されたとして、その数値が九九(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通り考えられます。

  1. 九九を全て試して入力値と同じものがあれば Yes を出力
  2. 入力値を1-9まで順番に除算していき、割り切れてかつ商が1以上9以下の整数であれば Yes を出力

今回は1でやりました。 for 文で掛ける側と掛けられる側を回して、入力値と同じであれば Yes に変更してループを抜けるようにしています。

2のほうがスマートですし、計算回数も少ないので処理も速いですが、九九(合計81回の評価)しか行わないのであれば誤差です。
処理方法を迷ったときはなるべく簡単な方を選ぶように、、(自戒)

melty12
フロントエンドエンジニアです
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away