A+Bproblem
描述
小明有一个很大的数字,现在他想要在这个数字中间插入一个+号,来求出这个数的结果,并且他还想知道,这些数中哪个数末尾0最多。
day06-02.zip
输入
第一行一个整数T(t<=100)表示数据组数
接下来有T行,每行一个数字字符(长度在10^5,最高位不为0)
输出
T行,每行一个整数,表示0最多有多少个
输入样例 1
2
2017
44445555
输出样例 1
0
3
A+Bproblem
描述
小明有一个很大的数字,现在他想要在这个数字中间插入一个+号,来求出这个数的结果,并且他还想知道,这些数中哪个数末尾0最多。
day06-02.zip
输入
第一行一个整数T(t<=100)表示数据组数
接下来有T行,每行一个数字字符(长度在10^5,最高位不为0)
输出
T行,每行一个整数,表示0最多有多少个
输入样例 1
2
2017
44445555
输出样例 1
0
3
晕,怎么同时问了那么多次
#include <stdio.h>
int countzero(int x)
{
int r = 0;
while (1)
{
if (x % 10 != 0) break;
r++;
x /= 10;
}
return r;
}
int foo(int x)
{
int base = 10;
int max = countzero(x / 10 + x % 10);
while (x / base != 0)
{
int num1 = x / base;
int num2 = x % base;
if (countzero(num1 + num2) > max) max = countzero(num1 + num2) > max;
base *= 10;
}
return max;
}
int main()
{
int n;
for (int i = 0; i < n; i++)
{
int x;
scanf("%d", &x);
int result = foo(x);
printf("%d\n", result);
}
return 0;
}