- 题目大意,比如一个字符串“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;
}
执行结果:
各定一个只包含数字的字符串,对其进行分割,求能被分割的数字的能被3整除的数量
最新推荐文章于 2020-12-09 19:10:38 发布