APTX Blog

A Moe Blog Set Up By APTX

#洛谷#C/C++P1008 三连击

题目背景

本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。

题目描述

将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。

输入输出格式

输入格式:

木有输入

输出格式:

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

本人提供的题解

机智的九循环

#include<cstdio>
#include<iostream>
using namespace std;
bool vis[10];
int main(){
	int a,b,c,d,e,f,g,h,i;
	int sum1,sum2,sum3;
	for(a=1;a<=9;++a) { vis[a]=1;
		for(b=1;b<=9;++b) { if (vis[b]) continue; vis[b]=1;
			for(c=1;c<=9;++c) { if (vis[c]) continue; vis[c]=1;
				for(d=1;d<=9;++d) { if (vis[d]) continue; vis[d]=1;
					for(e=1;e<=9;++e) { if (vis[e]) continue; vis[e]=1;
						for(f=1;f<=9;++f) { if (vis[f]) continue; vis[f]=1;
							for(g=1;g<=9;++g) { if (vis[g]) continue; vis[g]=1;
								for(h=1;h<=9;++h) { if (vis[h]) continue; vis[h]=1;
									for(i=1;i<=9;++i) {if (vis[i]) continue;
									sum1=100*a+10*b+c;
									sum2=100*d+10*e+f;
									sum3=100*g+10*h+i;
									if(sum1*2==sum2&&sum1*3==sum3)
									cout<<sum1<<" "<<sum2<<" "<<sum3<<endl;	
									}
								vis[h]=0;}
							vis[g]=0;}	
						vis[f]=0;}
					vis[e]=0;}
				vis[d]=0;}
			vis[c]=0;}
		vis[b]=0;}
	vis[a]=0;}
}

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注