Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาตัวคูณของ 3 และ 5 โดยไม่ใช้ตัวดำเนินการ % ใน C++

โจทย์

เราสามารถหาตัวคูณโดยใช้ตัวดำเนินการ % ได้โดยไม่มีอุปสรรค แต่โจทย์ระบุว่าเราไม่สามารถใช้ % ได้

ที่นี่เราใช้ตัวดำเนินการ + แทน เราสามารถหาตัวคูณได้โดยการบวก 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