在 C++ 中要被删除以使数字可被 3 整除的位数
在本教程中,我们将编写一个程序来查找要被删除的数字的位数,从而使数字可以被3整除。
给你一个字符串数字。您需要找出需要删除多少位数字才能被3整除。
我们通过删除最多2位数字来使数字可整除。为使其能被3整除而被删除的最大位数是2。,
让我们看看解决问题的步骤。
初始化字符串中的数字。
找出数字的总和。
如果总和能被3整除,则返回0。
如果总和不能被3整除并且数字的长度是1,那么我们就不能让它被3整除。返回-1。
迭代这个数字。
从数字中删除一位数字并检查可分性。
如果满足上述条件,则返回1。
再次检查号码的长度。如果长度为2,则返回-1。
否则返回2。
示例
让我们看看代码。
#include输出结果using namespace std; int getNumSum(string n) { int len = n.length(), sum = 0; for (int i = 0; i < len; i++) { sum += (int)n[i]; } return sum; } int getDigitsCount(string num) { int n = num.length(); int sum = getNumSum(num); if (sum % 3 == 0) { return 0; } if (n == 1) { return -1; } for (int i = 0; i < n; i++) { int currentDigit = num[i] - '0'; if (sum % 3 == currentDigit % 3) { return 1; } } if (n == 2) { return -1; } return 2; } int main() { string num = "7536836"; cout << getDigitsCount(num) << endl; return 0; }
如果你运行上面的代码,那么你会得到下面的结果。
1
结论
如果您对本教程有任何疑问,请在评论部分提及。