在 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

回到顶部