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

ตัวคูณ N-th ในรายการที่เรียงลำดับของทวีคูณของตัวเลขสองตัวใน C++


คุณจะได้รับสามตัวเลข คุณต้องหาผลคูณที่ n จากผลคูณของตัวเลขสองตัวแรก มาดูตัวอย่างให้เข้าใจกันชัดๆ

ป้อนข้อมูล

x = 2
y = 3
n = 7

ผลผลิต

10

n ตัวแรก ****การคูณของ 2 คือ 2 4 6 8 10 12 14

n ตัวแรก **** การคูณ 3 **** คือ 3 6 9 12 15 18 21

หากรวมทั้งสองผลคูณและเรียงลำดับเราจะได้ 2 3 4 6 8 9 10 12 14 15 18 21 และหมายเลขที่ n จากรายการคือ 10

อัลกอริทึม

  • เริ่มต้นเวกเตอร์เพื่อเก็บทวีคูณทั้งหมด
  • ค้นหา n **** ทวีคูณของ x ตัวแรกแล้วบวกเข้ากับเวกเตอร์ด้านบน
  • ตอนนี้ หาตัวคูณ n ตัวแรกของ y
    • เพิ่มลงในเวกเตอร์หากยังไม่มีอยู่ในเวกเตอร์
  • เรียงลำดับการคูณ
  • พิมพ์ผลคูณที่ n จากเวกเตอร์

การนำไปใช้

ต่อไปนี้เป็นการนำอัลกอริธึมข้างต้นไปใช้ใน C++

#include<bits/stdc++.h>
using namespace std;
int findNthMultiple(int x, int y, int n) {
   vector<int> multiples;
   for (int i = 1; i <= n; i++) {
      multiples.push_back(x * i);
   }
   sort(multiples.begin(), multiples.end());
   for (int i = 1, k = n; i <= n && k; i++) {
      if (!binary_search(multiples.begin(), multiples.end(), y * i)) {
         multiples.push_back(y * i);
         sort(multiples.begin(), multiples.end());
      }
   }
   return multiples[n - 1];
}
int main() {
   int x = 2, y = 3, n = 7;
   cout << findNthMultiple(x, y, n) << endl;
   return 0;
}

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

10