在 C++ 中要被删除以使数字可被 3 整除的位数
在本教程中,我们将编写一个程序来查找要被删除的数字的位数,从而使数字可以被 3 整除。
给你一个字符串数字。您需要找出需要删除多少位数字才能被 3 整除。
我们通过删除最多2位数字来使数字可整除。为使其能被 3 整除而被删除的最大位数是2。,
让我们看看解决问题的步骤。
初始化字符串中的数字。
找出数字的总和。
如果总和能被 3 整除,则返回0。
如果总和不能被 3 整除并且数字的长度是 1,那么我们就不能让它被 3 整除。返回-1。
迭代这个数字。
从数字中删除一位数字并检查可分性。
如果满足上述条件,则返回1。
再次检查号码的长度。如果长度为2,则返回-1。
否则返回2。
示例
让我们看看代码。
#include <bits/stdc++.h>输出结果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
结论
如果您对本教程有任何疑问,请在评论部分提及。
以上是 在 C++ 中要被删除以使数字可被 3 整除的位数 的全部内容, 来源链接: utcz.com/z/350466.html