Computer >> Máy Tính >  >> Lập trình >> C ++

Chia hết cho 37 cho các số lớn trong Chương trình C ++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình để kiểm tra xem số lớn đã cho có chia hết cho 37 hay không.

Chúng ta sẽ sử dụng một chút toán học ở đây. Hãy xem các bước để giải quyết vấn đề.

  • Khởi tạo số.

  • Nếu độ dài của số đã cho không chia hết cho 3 thì thêm các số 0 ở đầu số để độ dài chia hết cho 3.

  • Chia số thành các nhóm có 3 chữ số và cộng chúng.

  • Nếu tổng kết quả chia hết cho 37 thì số đã cho chia hết cho 37.

  • Nếu tổng kết quả là số có 4 chữ số, thì hãy lặp lại các bước từ 2.

  • In xem số đã cho có chia hết cho 37 hay không.

Ví dụ

Hãy xem mã.

#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;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

Yes

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.