C++程序中大数的37倍数判断
在本教程中,我们将编写一个程序来检查给定的大数是否能被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
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
结论
如果您在教程中有任何疑问,请在评论区提出。
广告