제목 설명
1,2, ..., 세 그룹으로 9 수가 각각 3 × 3 자리 숫자로 구성하고, 3 × 3 자리의 비율이 있음 : B : C, 다시 결정된 세 가지의 조건을 충족 세 자리, 경우 해결책, 출력 "아니오!".
입력 형식
세 개의 숫자, ABC.
출력 형식
세 개의 숫자의 여러 행. 숫자 순서로 배열의 각 행.
샘플 입출력
입력 # 1
1 2 3
출력 # 1
192 384 576
219 438 657
273 546 819
327 654 981
설명 / 팁
확인하는 <B <C
제목 및 효과 분석
C 비 : 그것은 세 세자리 이루어진 9 아홉 개 세 원자 그룹으로 배열 한 요청 번호, 주제, 및을 만족시킬 필요하다 B.
이 수가 3 선택을 반복 할 수 없기 때문에 세 자리 숫자가 123 최소한 얻을 수있다. 당신이 폭력을 해결하기 위해 123에서 시작할 수 있도록 다음과 같이 두 개의 작은 세부 사항은있다 :
- 그 결과 세 자리는 0이 번호를 포함하지.
- 세 자리 소자 자체가 반복 될 수 없다.
코드
#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;
}