1:加法-2
时间限制: 2 S | 内存限制: 65536 KB
Accept: 25 | Submit: 249
[提交] [讨论版]
描述
给你两个整数 a 和 b,输出 ( a + b ) % mod 的结果。
输入
第一行是一个正整数 T 代表测试案例的数量。(1 <= T <= 1000)
每组案例包含三个整数 a、b、mod。(long long min <= a、b <= long long max,2 <= mod <= long long max)
输出
针对每组案例,输出 ( a + b ) % mod 的结果,然后换行。
如果 a + b 的结果是一个负数,那么我们就输出0。
样例输入
3
1 2 5
3 6 4
-1 -2 3
样例输出
3
1
0
#include <iostream>
using namespace std;
int main()
{
int T;
cin >> T;
long long int a, b, mod;
for (int i = 1; i <= T; i++)
{
cin >> a >> b >> mod;
if (a <= 0 && b <= 0)
{
cout << "0" << endl;
}
else if (a <= 0 || b <= 0)
{
if (a + b < 0)//课上这个if好像没有加,我没加也不对
{
cout << "0" << endl;
}
else
{
cout << (a + b) % mod << endl;
}
}
else
{
if (a % mod <= mod- (b % mod))//保证在longlong范围内
{
cout << (a % mod + b % mod) % mod << endl;
}
else
{
cout << ((a % mod) - mod) + (b % mod) << endl;//防止超出longlong
}
}
}
return 0;
}