ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หาจำนวนตัวเลข n ที่ใหญ่ที่สุดที่หารด้วยตัวเลขสามตัวที่ให้มาลงตัว
มาดูขั้นตอนการแก้ปัญหากัน
- เริ่มต้นตัวเลขสามตัวพร้อมกับ n.
- ค้นหา LCM ของตัวเลขสามตัว
- เก็บตัวเลขที่ใหญ่ที่สุดด้วยตัวเลข n
- ถ้าจำนวนที่มากที่สุดหารด้วย n ลงตัว ก็คืนค่ามา
- ตรวจสอบตัวเลขที่ได้จากการลบส่วนที่เหลือในขั้นตอนข้างต้น
ตัวอย่าง
มาดูโค้ดกันเลย
#include <bits/stdc++.h> using namespace std; int LCM(int x, int y, int z) { int ans = ((x * y) / (__gcd(x, y))); return ((z * ans) / (__gcd(ans, z))); } int findNumber(int n, int x, int y, int z) { int lcm = LCM(x, y, z); int largestNDigitNumber = pow(10, n) - 1; int remainder = largestNDigitNumber % lcm; if (remainder == 0) { return largestNDigitNumber; } largestNDigitNumber -= remainder; if (largestNDigitNumber >= pow(10, n - 1)) { return largestNDigitNumber; } return 0; } int main() { int n = 4, x = 6, y = 7, z = 8; int result = findNumber(n, x, y, z); if (result != 0) { cout << result << endl; }else { cout << "Not possible" << endl; } return 0; }
ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
9912
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น