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

หาจำนวน N หลักที่มากที่สุดซึ่งหารด้วยตัวเลข 3 จำนวนที่กำหนดลงตัวใน C++

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อหาจำนวน N หลักที่มากที่สุดซึ่งหารด้วยตัวเลข 3 จำนวนที่กำหนดลงตัว

ขั้นตอนการแก้ปัญหา

  • กำหนดค่าเริ่มต้นของตัวเลข 3 ตัวพร้อมกับค่า n
  • หาค่า LCM (ตัวคูณร่วมน้อยที่สุด) ของตัวเลข 3 ตัว
  • เก็บค่าจำนวน N หลักที่มากที่สุด
  • ถ้าจำนวนมากที่สุดหารด้วย LCM ลงตัว ให้คืนค่า
  • มิฉะนั้น ให้ลบเศษจากขั้นตอนก่อนหน้าเพื่อหาคำตอบ

ตัวอย่างโค้ด

#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

สรุป

หากมีข้อสงสัยเกี่ยวกับบทช่วยสอนนี้ สามารถถามได้ในส่วนความคิดเห็น