C++ 程式中判別一個大數是否能被 12 整除


在本教程中,我們將編寫一個程式來檢查給定的字串格式大數是否能被 12 整除。

我們將使用一些數學知識來解決這個問題。如果該數能被 3 和 4 整除,則它能被 12 整除。

如果一個數各個數字之和能被 3 整除,則它能被 3 整除。

如果一個數的最後兩位數字能被 4 整除,則它能被 4 整除。

我們將利用以上論述並完成該程式。

示例

我們來看一下程式碼。

 線上演示

#include <bits/stdc++.h>
using namespace std;
bool isNumberDivisibleBy12(string num) {
   if (num.length() >= 3) {
      int last_digit = (int)num[num.length() - 1];
      if (last_digit % 2 != 0) {
         return 0;
      }
      int second_last_digit = (int)num[num.length() - 2];
      int sum = 0;
      for (int i = 0; i < num.length(); i++) {
         sum += num[i];
      }
      return (sum % 3 == 0 && (second_last_digit * 10 + last_digit) % 4 == 0);
   }
   else {
      int number_as_int = stoi(num);
      return number_as_int % 12 == 0;
   }
}
int main() {
   string num = "1212121212121212121212121212";
   if (isNumberDivisibleBy12(num)) {
      cout << "Yes" << endl;
   }
   else {
      cout << "No" << endl;
   }
   return 0;
}

輸出

如果你執行上述程式,你將得到以下結果。

Yes

結論

如果你對本教程有任何疑問,請在評論區提及。

更新於:2021 年 1 月 28 日

139 次瀏覽

開啟你的職業生涯

透過完成這門課程獲得認證

開始
廣告
© . All rights reserved.