在牛客上写一道题目,我写的代码和别人感觉差不多,但是为什么别人可以通过全部案例而我不可以?求解答
这是别人写的代码:
if(sum_a!=sum_b) printf("-1");
else printf("%lld",y);
这是我写的代码:
if(sum_a!=sum_b)
{
printf("−1");
}
else
{
printf("%lld",y);
}
我的只能通过60%的案例,这是为什么呀?
这两段代码没区别,应该是别的地方有问题
y在哪里定义的,是不是这个y的变量你没有定义成long long或者在别的地方赋值的搞错了。
%操作符的两个操作数必须为整数,因此,两个操作数是可以为负数的。标准规定,如果 a 和 b 都是整数,则 a % b 可以用公式 a - (a / b) * b 算出。
因此,有如下代码:
#include <stdio.h>
int main()
{
int a = 7, b = -8, c = 3, d = -3;
//正数模正数
printf("%d\n", a%c);//1
//a - (a / b) * b
//7 - (7 / 3) * 3
//正数模负数
printf("%d\n", a%d);//1
//7 - (7 / -3) *-3
//负数模正数
printf("%d\n", b%c);//-2
//-8 - (-8 / 3) * 3
//负数模负数
printf("%d\n", b%d);//-2
//-8 - (-8 / -3) * -3
return 0;
}