タイトル説明
1,2、...、三つのグループに9~9の数、それぞれが3×3桁の数字からなる、3 3桁の比であること:B:C、再び決定すべての3つの条件を満たすように3桁、解無しであれば、出力は「いいえ!!!」。
入力形式
3つの数字、ABC。
出力フォーマット
3つの数字のいくつかの行。各行は、番号順に配置されています。
サンプル入力と出力
入力#1
1 2 3
出力#1
192 384 576
219 438 657
273 546 819
327 654 981
説明/ヒント
A <B <Cことを確認し
タイトルと効果分析
それは9要求番号1の主題であり、3×3桁、及びAを満たす必要からなる群に配置された9個の3個の原子、:C比:B.
この数が3が選択繰り返すことができないので、3桁の数123最小で得ることができます。あなたが暴力を解決するために123から開始することができますので、以下のように、二つの小さな細部があるがあります。
- 結果として3桁の0は、この番号が含まれていません。
- 3桁の要素自体を繰り返すことはできません。
コード
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int q,b,c,sum=0,temp;
cin >> q >> b >> c;
for(int i=123;i<999;i++)
{
int a[10]={0},s=0;
if(i/q*c>999)
break;
if(i%q!=0)
continue;
temp = i;//第一个数判断开始;
for(int n=0;n<3;n++)
{
if(temp%10==0||a[temp%10]==1)
{
s=1;
break;
}
a[temp%10]=1;
temp = temp / 10;
}
if(s==1) continue;
int j=i/q*b;
temp = j;//第二个数判断开始;
for(int n=0;n<3;n++)
{
if(a[temp%10]==0&&temp%10!=0)
a[temp%10]=1;
else
{
s=1;
break;
}
temp = temp/10;
}
if(s==1) continue;
int k=i/q*c;
temp = k;//第三个数判断开始;
for(int n=0;n<3;n++)
{
if(a[temp%10]==0 && temp%10!=0)
a[temp%10]=1;
else
{
s=1;
break;
}
temp = temp/10;
}
if(s==1) continue;
else
{
cout << i << " " << j << " " << k <<endl;
sum++;
}
}
if(sum==0)
{
cout << "No!!!" <<endl;
}
return 0;
}