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

แบ่งตัวเลขออกเป็นสองส่วนที่หารด้วยตัวเลขที่กำหนดในโปรแกรม C++


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

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

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

  • เริ่มต้นตัวเลขและจำนวนเต็มสองตัวสำหรับการหาร

  • วนซ้ำตัวเลขจนส่วนแรกหารด้วยจำนวนแรกลงตัว

  • สร้างตัวเลขโดยแปลงอักขระแต่ละตัวให้เป็นตัวเลข

  • ทำลายลูปเมื่อหารด้วยตัวเลขแรกลงตัว

  • ตอนนี้ วนซ้ำจากดัชนีถัดไปสำหรับส่วนที่สองของตัวเลข

  • สร้างตัวเลขตามที่คุณทำในส่วนแรก

  • ตรวจสอบว่าส่วนที่สองหารด้วยตัวเลขที่สองหรือไม่

  • หากส่วนแรกและส่วนที่สองหารด้วยตัวเลขตัวแรกและตัวที่สองตามลำดับ ให้พิมพ์ส่วนอื่นลงไปให้พิมพ์ว่า "เป็นไปไม่ได้"

ตัวอย่าง

มาดูโค้ดกันเลย

#include <bits/stdc++.h>
using namespace std;
void checkTheDivisabilityOfPrefixAndSuffix(string num, int prefix_dividend, int suffix_dividend) {
   int N = num.length();
   bool is_prefix_divisable = false, is_suffix_divisable = false;
   int index = 0;
   int prefix = num[index] - '0';
   while (index < N) {
      if (prefix % prefix_dividend == 0) {
         is_prefix_divisable = true;
         break;
      }
      prefix = prefix * 10 + (num[++index] - '0');
   }
   int suffix = num[++index] - '0';
   while (index < N - 1) {
      suffix = suffix * 10 + (num[++index] - '0');
   }
   cout << suffix << endl;
   if (suffix % suffix_dividend == 0) {
      is_suffix_divisable = true;
   }
   if (is_prefix_divisable && is_suffix_divisable) {
      cout << prefix << " " << suffix << endl;
   }
   else {
      cout << "Not possible" << endl;
   }
}
int main() {
   string number = "125333";
   int prefix_dividend = 5;
   int suffix_dividend = 3;
   checkTheDivisabilityOfPrefixAndSuffix(number, prefix_dividend, suffix_dividend);
   return 0;
}

ผลลัพธ์

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

125 333

บทสรุป

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