判断4的倍数只需百位,题目让删除,我直接把需要的位数抽出来判断不行吗?
#include<bits/stdc++.h>
using namespace std;//测试用
int main()
{
int num[20]={0};
long long T,a;
cin>>T;
while(T--)//循环计次
{
int i=0,x,y,t,s=0;
cin>>a;
if(a<=100)
{
if(a%4==0)s=1;
if(a/10%4==0&&a>=10)s=1;//十位
if(a%10%4==0&&a%10!=0)s=1;//个位
if(s==1)printf("Yes\n");
else printf("No\n");
}else
{
while(a)//储存数字
{
num[i]=a%10;
a/=10;
i++;
}
for(x=0,y=1;x<i;x++,y++)//abcde 依次判断de cd bd ab 0a (从尾部删除)
{
t=num[x]+num[y]*10;
cout<<t<<"\n";
if(t%4==0)
{
if(s==0)printf("Yes\n");
s=1;
break;
}
}
if(s==0)
{
x=0;
for(y=x+2;y<=i;y++)//abcde 依次判断ce be ae 0e(从中间删除)
{
t=num[x]+num[y]*10;
cout<<t<<"\n";
if(t%4==0)
{
if(s==0)printf("Yes\n");
s=1;
break;
}
}
}
if(s==0)printf("No\n");
}
}
return 0;
}```