各定一个只包含数字的字符串,对其进行分割,求能被分割的数字的能被3整除的数量

    xiaoxiao2025-08-02  19

    题目大意,比如一个字符串“12345” 最大。分割成12 3 45。分割成这样三个,三个数都被3整除。 算法分析:(1)分析可得各个数字之和能被三整除即可。就可以判断该数字可以被三整除。当遇到3,6,9的时候,我们可以直接在总数量+1 (2)当遇到不能被三整除的数字的时候,我们统计该数字除以3的余数,并且累加,直到该数字可以被三整除,然后总数量+1. 整体代码实现如下: #include using namespace std; int max3zhengchu(string str1) { int cnt = 0; int sum = 0; for (int i = 0; i < str1.size(); i++) { int num = str1[i] - ‘0’; if (num % 3 == 0) { cnt++; sum = 0; } else { sum = sum + num % 3; if (sum % 3 == 0) { cnt++; sum = 0; } } } return cnt; } int main() { string str1 = “111222333”; cout << max3zhengchu(str1) << endl; system(“pause”); return 0; } 执行结果:
    最新回复(0)