C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++で%演算子を使用せずに3と5の倍数


%演算子を使用すると、ハードルなしで倍数を見つけることができます。しかし、問題は、%演算子を使用できないことを示しています。

ここでは、+演算子を使用します。前の倍数に3または5を加えることで、倍数を取得できます。例を見てみましょう。

入力

15

出力

1
2
3 - Multiple of 3
4
5 - Multiple of 5
6 - Multiple of 3
7
8
9 - Multiple 3
10 - Multiple of 5
11
12 - Multiple of 3
13
14
15 - Multiple of both 3 and 5

アルゴリズム

  • 番号を初期化しますn。

  • 3 の次の倍数を追跡するために、2つの数値を初期化します および5。

  • 最初は、これら2つの数字は3と5になります。
  • 1から繰り返すループを作成します n。へ 両方を含みます。

    • 現在の番号が3の倍数であるかどうか、またはトラックを可変的に使用していないかどうかを確認してください。

    • 同様に、5の倍数を確認します。

    • 3または5の倍数である場合は、それぞれの数を加算して次の倍数を取得します。

    • 対応するテキストをコンソールに印刷します。

実装

以下は、C++での上記のアルゴリズムの実装です

#include <bits/stdc++.h>
using namespace std;
void findMultiplesOf3And5(int n) {
   int threeMultiple = 3;
   int fiveMultiple = 5;
   for (int i = 1; i <= n; i++) {
      bool _3 = false, _5 = false;
      if (i == threeMultiple) {
         threeMultiple += 3;
         _3 = true;
      }
      if (i == fiveMultiple) {
         fiveMultiple += 5;
         _5 = true;
      }
      if (_3 && _5) {
         cout << "Multiple of both 3 and 5" << endl;
      }else if (_3) {
         cout << "Multiple of 3" << endl;
      }else if (_5) {
         cout << "Multiple of 5" << endl;
      }else {
         cout << i << endl;
      }
   }
}
int main() {
   findMultiplesOf3And5(100);
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

1
2
Multiple of 3
4
Multiple of 5
Multiple of 3
7
8
Multiple of 3
Multiple of 5
11
Multiple of 3
13
14
Multiple of both 3 and 5
16
17
Multiple of 3
19
Multiple of 5
Multiple of 3
22
23
Multiple of 3
Multiple of 5
26
Multiple of 3
28
29
Multiple of both 3 and 5
31
32
Multiple of 3
34
Multiple of 5
Multiple of 3
37
38
Multiple of 3
Multiple of 5
41
Multiple of 3
43
44
Multiple of both 3 and 5
46
47
Multiple of 3
49
Multiple of 5
Multiple of 3
52
53
Multiple of 3
Multiple of 5
56
Multiple of 3
58
59
Multiple of both 3 and 5
61
62
Multiple of 3
64
Multiple of 5
Multiple of 3
67
68
Multiple of 3
Multiple of 5
71
Multiple of 3
73
74
Multiple of both 3 and 5
76
77
Multiple of 3
79
Multiple of 5
Multiple of 3
82
83
Multiple of 3
Multiple of 5
86
Multiple of 3
88
89
Multiple of both 3 and 5
91
92
Multiple of 3
94
Multiple of 5
Multiple of 3
97
98
Multiple of 3
Multiple of 5

  1. C++のnewおよびdelete演算子

    新しい演算子 新しい演算子は、ヒープ内のメモリ割り当てを要求します。十分なメモリが利用可能な場合、メモリをポインタ変数に初期化し、そのアドレスを返します。 これがC++言語の新しい演算子の構文です pointer_variable = new datatype; メモリを初期化するための構文は次のとおりです pointer_variable = new datatype(value); これがメモリのブロックを割り当てるための構文です pointer_variable = new datatype[size]; これがC++言語の新しい演算子の例です 例 #include <i

  2. インクリメント++とデクリメント-C++での演算子のオーバーロード

    インクリメント(++)およびデクリメント(-)演算子は、C++で使用可能なユニット2の必要な単項演算子です。次の例では、プレフィックスとポストフィックスの使用のためにインクリメント(++)演算子をオーバーロードする方法を説明します。同様に、演算子(-)をオーバーロードできます。 例 #include <iostream> using namespace std; class Time {    private:    int hours;    int minutes;    public: &nb