思路是全排列,但还只是部分ac
查看原帖
思路是全排列,但还只是部分ac
437602
magicrane楼主2022/12/26 20:57
#include<iostream>
using namespace std;
int a,b,c;
int ans=0;
int list[10]={0,1,2,3,4,5,6,7,8,9};
void swap(int&a,int&b)
{
	int temp=a;
	a=b;
	b=temp;
}
void ss()
{
	int a1=100*list[1]+10*list[2]+list[3];//第一个数
	int b1=100*list[4]+10*list[5]+list[6];//第二个数
	int c1=100*list[7]+10*list[8]+list[9];//第三个数
	if((a1*b==b1&&a1*c==c1)||(a1==a&&b1==b&&c1==c))
	{
		cout<<a1<<" "<<b1<<" "<<c1<<endl;
		ans++;
	}
	
}

void perm(int k)
{
	if(k==9)//最后一位开始判断 
	{
		ss();
		return;
	}
	for(int i=k;i<=9;i++)
	{
		swap(list[i],list[k]);
		perm(k+1);
		swap(list[i],list[k]);
	}

}
int main()
{
	cin>>a>>b>>c;
	int ans=0;
	perm(1);
	if(!ans)cout<<"No!!!";
}
2022/12/26 20:57
加载中...