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

ตัวเลข N ที่ใหญ่ที่สุดหารด้วยตัวเลขสามตัวใน C++


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หาจำนวนตัวเลข 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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น