求助大佬,第四个测试点RE
查看原帖
求助大佬,第四个测试点RE
975719
lahmyyc314楼主2023/8/23 17:58
#include <bits/stdc++.h>
long long sum=0,sum2,sum3,a,b,c,l=1,h;
bool sw(int x,int y)
{
	int h=x,l=y;
	if(h%10==l%10) return 0;
	if(h%10==(l%100-l%10)/10) return 0;
	if(h%10==l/100) return 0;
	if((h%100-h%10)/10==l%10) return 0;
	if((h%100-h%10)/10==(l%100-l%10)/10) return 0;
	if((h%100-h%10)/10==l/100) return 0;
	if(h/100==l%10) return 0;
	if(h/100==(l%100-l%10)/10) return 0;
	if(h/100==l/100) return 0;
	if(h/100==0||(l%100-l%10)/10==0||h%10==0||l%10==0||(h%100-h%10)/10==0||l/100==0) return 0;
	return 1;
}
bool cj(int p)
{
	int a=p%10,b=(p%100-p%10)/10,c=p/100;
	if(a==b||b==c||c==a) return 0;
	return 1;
}
using namespace std;
int main()
{
	cin>>a>>b>>c;
	if(a==0){
		cout<<"No!!!"; 
		return 0;
	}
	if((__gcd((a*b/(__gcd(a,b))),c))!=0){
		h=(__gcd((a*b/(__gcd(a,b))),c));
		a/=h;
		b/=h;
		c/=h;
	}
	for(int i=1;i<=9;i++)
		for(int j=1;j<=9;j++)
			for(int z=1;z<=9;z++)
			{
				if(i==j||i==z||z==j) 
					continue;
				sum=i*100+j*10+z;
				sum2=sum*b/a;
				sum3=sum*c/a;
				if(sum3>=1000)
					break;
				if(sw(sum,sum2)&&sw(sum,sum3)&&sw(sum2,sum3)&&cj(sum2)&&cj(sum3)){
					cout<<sum<<" "<<sum2<<" "<<sum3<<endl;
					l=0;
				}
					
			}
			if(l==1) cout<<"No!!!";                                                                              
	return 0;
}
2023/8/23 17:58
加载中...