1. ホーム
  2. c++

[解決済み] ある数字が10の倍数か、特定の範囲内かを判断する。

2022-11-25 06:01:49

質問

プログラム中に必要なループがいくつかあります。疑似コードを書き出すことはできますが、論理的にどのように書けばいいのか全くわかりません。

私は - が必要です。

if (num is a multiple of 10) { do this }

if (num is within 11-20, 31-40, 51-60, 71-80, 91-100) { do this }
else { do this } //this part is for 1-10, 21-30, 41-50, 61-70, 81-90

これは蛇と梯子のボードゲームのためのものです。

私は、最初の もし ステートメントでモジュラスを使用する必要があります。そうですね if (num == 100%10) は正しいでしょうか?

2つ目は全くわかりません。次のように書き出すことができます。 if (num > 10 && num is < 21 || etc.) のように書けますが、もっとスマートなものがあるはずです。

どのように解決するのですか?

1つ目は、ある数字が倍数であるかどうかを確認することです。

if (num % 10 == 0) // It's divisible by 10

2つ目については

if(((num - 1) / 10) % 2 == 1 && num <= 100)

しかし、これはかなり密度が高く、オプションを明示的に列挙する方がよいかもしれません。


今、あなたが何をしているのかがよくわかったので、2つ目はこう書きます。

   int getRow(int num) {
      return (num - 1) / 10;
   }

   if (getRow(num) % 2 == 0) {
   }

同じロジックですが、関数を使うことでより明確な意味がわかります。