蒟蒻求助,请大犇看看思路有什么问题!
查看原帖
蒟蒻求助,请大犇看看思路有什么问题!
1150637
lrxxydj楼主2023/11/18 13:09

判断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;
}```
2023/11/18 13:09
加载中...