0
点赞
收藏
分享

微信扫一扫

例3: 三连击(升级版)

12a597c01003 2022-02-06 阅读 25

题目描述

输入格式

输出格式

输入输出样例

输入 #1

输出 #1

说明/提示

分析 :

由于比值确定,所以本题可以通过枚举一个数来确定其他两个数,最后检验结果是否同时满足9个数字即可,需要注意的是这样做需要对后两个数的大小进行限制,否则可能超过三位。

代码如下:

#include<iostream>
#include<cstring>
using namespace std;
int a[10];
int A,B,C,res;
bool check(int x,int y,int z)
{
	for(int i=0;i<10;i++) a[i]=0;
	//if(y>999||z>999) return false;
	while(x)
	{
		a[x%10]++;
		x/=10;
	}
	while(y)
	{
		a[y%10]++;
		y/=10;
	}
	while(z)
	{
		a[z%10]++;
		z/=10;
	}	
	for(int i=1;i<10;i++)
	{
		if(a[i]!=1) return false;
	}
	return true;
}
int main()
{
	cin>>A>>B>>C;
	int x,y,z;
	for(x=123;x<=987;x++)
	{
		if(x*B%A||x*C%A) continue;
		y=x*B/A;
		z=x*C/A;
		if(check(x,y,z))
		{
			res++;
			cout<<x<<' '<<y<<' '<<z<<endl;
		}

	}
	if(!res) cout<<"No!!!";
	return 0;
}
举报

相关推荐

0 条评论