作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
OJ 的问题是:
Question: Give three positive integer like
A Da B Db
and calculatePa+Pb
. And the rule likes Example: A = 3862767, Da = 6,so Pa = 66, because there are two number "6" in integer A.Input Format: Enter
A Da B Db
in one line, and use space to split them, and 0<A,B<10^10Output Format: Show the value of
Pa+Pb
in one lineInput Example 1: 3862767 6 13530293 3
Output Example 1: 399
Input Example 2: 3862767 1 13530293 8
Output Example 2: 0
我的问题:我已经通过了五项测试中的四项,但不知道为什么我的代码无法全部通过并且编译器是 gcc 4.7.2
我的代码是:
int fun(int a, int b) {
int n = 0;
short i = 1,k;
do {
k = a % 10;
if (k == b) {
n += i*k;
i *= 10;
}
} while ((a /= 10) != 0);
return n;
}
int main() {
int a1, a2, a3, a4;
scanf("%d %d %d %d", &a1, &a2, &a3, &a4);
printf("%d", fun(a1, a2) + fun(a3, a4));
return 0;
}
最佳答案
是的,我不应该使用 short
和 int
,更改为 long long
后测试已通过。@david-eisenstat
关于c - 该算法存在一些缺陷,无法通过名为 "partly calculate A add B"的所有OJ测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38683592/
我是一名优秀的程序员,十分优秀!