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의 다음 배수를 추적하기 위해 두 개의 숫자를 초기화합니다. 및 5.

  • 처음에는 이 두 숫자가 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