在这里插入图片描述
在这里插入图片描述
思路:
1.题目要求用1-9(不能重复)组成三个三位数,并且比列为A:B:C。所以首先考虑数字不能重复,所以可以将数据范围缩小(123到987,实际上因为是从最小的开始算的,A<B<C,所以更小)
2.先定最小的数字,然后按照比例算出另外两个数,然后判断每个数字的使用情况就可。
提示:可以用一个数组记录数字的使用情况

#include <cstdio>
#include <iostream>
using namespace std;
double a,b,c,j,k,flag[10],mark,cnt;
void check(int num)
{
	flag[num%10]++;
	flag[num/10%10]++;
	flag[num/100]++;
}
int main()
{
	cin>>a>>b>>c;
	cnt=0;
	for(double i=123;i<=987;i++)
	{
		for(int m=1;m<10;m++) flag[m]=0;
		j=i/a*b;
		k=i/a*c;
		if(j>999||k>999) continue;
		else
		{//cout<<j<<" "<<k<<endl;
			check(i);
			check(j);
			check(k);
			//cout<<i<<" "<<j<<" "<<k<<" "<<endl;
			//for(int m=1;m<10;m++) cout<<flag[m]<<" ";
			//cout<<endl;
			mark=0;
			for(int m=1;m<10;m++)
			{
				if(flag[m]!=1) mark=1;
			}
			if(mark==0)
			{
				cnt++;
				cout<<i<<" "<<j<<" "<<k<<" "<<endl;
			}
		}
	}      
	if(cnt==0) cout<<"No!!!"<<endl;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	return 0;                                    
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐