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

จำนวนคู่ที่ใหญ่ที่สุดที่เป็นไปได้โดยใช้การดำเนินการสลับหนึ่งครั้งในจำนวนที่กำหนดใน C++


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หาจำนวนคู่ที่ใหญ่ที่สุดเท่าที่จะเป็นไปได้ด้วยการสลับตัวเลขเพียงหลักเดียว

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

  • เริ่มต้นตัวเลขในรูปแบบสตริง
  • วนซ้ำตัวเลขที่กำหนด
    • ค้นหาเลขคู่ที่น้อยกว่าหรือเท่ากับหลักสุดท้ายของตัวเลข
    • ตัดวงจรหากคุณพบเลขคู่ที่ต้องการ
  • หากไม่มีเลขคู่ ให้ส่งคืนตัวเลขที่ระบุ
  • สลับหลักสุดท้ายกับหลักคู่ที่คุณพบในขั้นตอนด้านบน
  • คืนหมายเลข

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
string getLargestEvenNumber(string number, int n) {
   int even = INT_MAX, index;
   for (int i = 0; i < n - 1; i++) {
      if ((number[i] - '0') % 2 == 0) {
         even = (number[i] - '0');
         index = i;
      }
      if (even <= (number[n - 1] - '0')) {
         break;
      }
   }
   if (even == INT_MAX) {
      return number;
   }
   swap(number[index], number[n - 1]);
   return number;
}
int main() {
   string number = "15433";
   cout << getLargestEvenNumber(number, 5) << endl;
   return 0;
}

ผลลัพธ์

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

15334

บทสรุป

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