求助
查看原帖
求助
315039
Romanticism_null楼主2024/11/12 15:28

求助,样例过了但全WA

#include<iostream>
using namespace std;
int a[25],b[25],c[25];//b储存幸运数各位数字,c储存奇数位数字 
int sum1,sum2,zz;//sum1储存幸运数的位数, sum2储存奇数计算结果位数 
void cf1(int x)//拆分1,拆分幸运数的各位上的数字 
{
	sum1=0;
	while(x!=0)
	{
		sum1++;
		b[sum1]=x%10;
		x/=10;
	}
}
void cf2(int x)//拆分2,拆分奇数位乘之后的结果 
{
	sum2=0;
	while(x!=0)
	{
		sum2++;
		c[sum2]=x%10;
		x/=10;	
	}
	//for(int i=1;i<=sum2;i++) cout<<c[i]<<" ";
}
int ws(int x)//位数,递归,是否大于九 
{
	if(b[zz]<=9) return b[zz];
	if(b[zz]>9) cf2(b[zz]);
	b[zz]=0;
	for(int i=1;i<=sum2;i++)
	{
		b[zz]+=c[i];
	}
	if(b[zz]>9) b[zz]=ws(b[zz]);
	if(b[zz]<=9) return b[zz];
}
bool xys(int x)//16347
{
	cf1(x);
	for(int i=1;i<=sum1;i++)
	{
		if(i%2!=0)
		{
			b[i]=b[i]*7;//74361 4 4 3 6 7
			zz=i;
			b[i]=ws(b[i]);
		}
	}
	int pd=0;
	for(int i=1;i<=sum1;i++)
	pd+=b[i];
	if(pd%8==0) return true;
	else return false;
}
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	    
	}
	for(int i=1;i<=n;i++)
	{
		if(xys(a[i])) cout<<"T"<<endl;
		else cout<<"F"<<endl;
	}
	return 0;
}
2024/11/12 15:28
加载中...