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

หารด้วย 37 สำหรับตัวเลขจำนวนมากในโปรแกรม C++


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

เราจะใช้คณิตศาสตร์เล็กน้อยที่นี่ มาดูขั้นตอนการแก้ปัญหากัน

  • เริ่มต้นหมายเลข

  • หากความยาวของตัวเลขที่ระบุหารด้วย 3 ไม่ลงตัว ให้เพิ่มศูนย์ที่จุดเริ่มต้นของตัวเลขเพื่อให้ความยาวหารด้วย 3 ลงตัว

  • แบ่งตัวเลขออกเป็นกลุ่ม 3 หลักแล้วบวกเข้าไป

  • หากผลรวมผลลัพธ์หารด้วย 37 ลงตัว จำนวนที่ให้มาหารด้วย 37 ลงตัว

  • หากผลรวมเป็นตัวเลข 4 หลัก ให้ทำขั้นตอนตั้งแต่ 2 ซ้ำ

  • พิมพ์ว่าตัวเลขที่กำหนดนั้นหารด้วย 37 ลงตัวหรือไม่

ตัวอย่าง

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

#include <bits/stdc++.h>
using namespace std;
bool isNumberDivisibleBy37(string number, int n) {
   if (number == "0") {
      return 0;
   }
   if (n % 3 == 1){
      number = "00"+ number;
      n += 2;
   }
   else if (n % 3 == 2){
      number = "0"+ number;
      n += 1;
   }
   int groups_sum = 0;
   while (n != 0){
      string group = number.substr(n - 3, n);
      int group_value = (group[0] - '0') * 100 + (group[1] - '0') * 10 + (group[2] - '0') * 1;
      groups_sum += group_value;
      n = n - 3;
   }
   if (groups_sum >= 1000) {
      string new_number = to_string(groups_sum);
      return isNumberDivisibleBy37(new_number, new_number.length());
   }
   else {
      return groups_sum % 37 == 0;
   }
}
int main() {
   string number = "4048675309";
   if (isNumberDivisibleBy37(number, 10)) {
      cout << "Yes" << endl;
   }
   else {
      cout << "No" << endl;
   }
   return 0;
}

ผลลัพธ์

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

Yes

บทสรุป

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