我是初学者,请帮助我了解此代码中的问题。
问题陈述:
给出两个整数
a
和b
,您应该检查a
是否可被b
整除。我们知道,仅当存在a
这样的整数b
时,整数c
才能被整数a = b * c
整除。输入
输入以整数T
(≤525)开头,表示测试用例的数量。每种情况都以包含两个整数
a
(-10200 ≤ a ≤ 10200
)和b
(|b| > 0
,b
的32位带符号整数)开始。数字将不包含前导零。输出
对于每种情况,请首先打印情况编号。如果a
可被b
整除,则打印“可整除”。否则打印“不可整除”。样本输入
6 101 101 0 67 -101 101 7678123668327637674887634 101 11010000000000000000 256 -202202202202000202202202 -101
样本输入的输出
Case 1: divisible Case 2: divisible Case 3: divisible Case 4: not divisible Case 5: divisible Case 6: divisible
我的代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
scanf("%d",&T);
for(int t=1;t<=T;t++){
string a;
cin >> a;
long long int b;
scanf("%lld",&b);
b = abs(b);
long long int mod = 0;
long long int sz = a.size();
int i=0;
if(a[0] == '-') i=1;
for( ;i<sz;i++){
mod = mod*10+a[i]-'0';
mod = mod%b;
}
if(mod == 0) printf("Case %d : divisible\n",t);
else printf("Case %d : not divisible\n",t);
}
return 0;
}