直接贴代码
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int modBigNumber(string s,int modNumber)
{
long sum = 0;
for (int i = 0; i < s.length(); ++i)
{
sum = sum*10 + s[i]-48;//这里要把每个字符的ASCII码减去48成为数字
sum %= modNumber;
}
return sum;
}
string subtract(string ans,string b)
{
int flag=0;
if(ans.length()<b.length()||ans.length()==b.length()&&ans<b){
flag=1;
ans.swap(b);
}
for(int i=ans.length()-1,j=b.length()-1;i>=0;i--,j--){
ans[i]=ans[i]-(j>=0?b[j]-'0':0);
if(ans[i]<'0')
{
ans[i]+=10;
--ans[i-1];
}
}
while(ans.length()&&ans[0]=='0') ans.erase(ans.begin());
if(flag) ans.insert(0,"-");
if(ans.empty()) return "0";
return ans;
}//以上代码分别为大数的取余、减法运算,模板来自网络,我还不是很懂,必须好好理解 记住!!;
int main()
{
int n;
cin>>n;
string s1[n],s2[n];
for(int i=0;i<n;i++)
{
cin>>s1[i]>>s2[i];
s1[i]=subtract(s1[i],"1");//前一个数减1;
int a=modBigNumber(s1[i],3);
int b=modBigNumber(s2[i],3);//两数分别取余;
if(a==b||(a==2&&b==0)||(a==0&&b==2))//只有这三种情况下所得为偶数;
cout<<0<<endl;
else cout<<1<<endl;
}
return 0;
}