P1008三连击 - 洛谷
题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
这一题用全排列函数next_permutation()对1~9进行全排列,拼出三个数,输出符合的答案。
题解:
#include<iostream> #include<algorithm> using namespace std; int main(){ int num[9] = {1,2,3,4,5,6,7,8,9}; do{ int a = num[0]*100+num[1]*10+num[2]; int b = num[3]*100+num[4]*10+num[5]; int c = num[6]*100+num[7]*10+num[8]; if(a*2==b&&a*3==c) { cout<<a<<" "<<b<<" "<<c<<endl; } }while(next_permutation(num,num+9)); return 0; }