4 算法1-3 三连击(升级版)

题目描述

将 1,2,…,9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!

输入格式

三个数,A,B,C。

输出格式

若干行,每行 3 个数字。按照每行第一个数字升序排列。

输入输出样例

输入 #1

1 2 3

输出 #1

192 384 576
219 438 657
273 546 819
327 654 981

说明/提示

保证 A

 

#include
using namespace std;

int a, b, c;
int n1, n2, n3, arr[10], flag, cnt;

int main()
{
	cin>>a>>b>>c;
	
	for(int num=1; num<=1000/c; num++) //num是“单位数” 
	{                                 
		n1 = num * a;
		n2 = num * b;
		n3 = num * c;
		
		//统计1-9每个数字出现的次数 
		for(int i=1; i<=3; ++i)
		{
			arr[n1%10]++;
			n1 = n1 / 10;
		}
		for(int i=1; i<=3; ++i)
		{
			arr[n2%10]++;
			n2 = n2 / 10;
		}
		for(int i=1; i<=3; ++i)
		{
			arr[n3%10]++;
			n3 = n3 / 10;
		}
		
		for(int i=1; i<=9; ++i)
		{
			if(arr[i] != 1)  //如果有数字不是只出现一次 
			{
				flag = 1;
				break;
			}
		}
		
		if(!flag)
		{
			cout<

你可能感兴趣的:(枚举)