1.栈队列
学习了next_permutation函数的用法
如以下例题:
资源限制
时间限制:1.0s ? 内存限制:256.0MB
寻找三位数
问题描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成 1:2:3的比例,试求出所有满足条件的三个三位数。 例如:三个三位数192,384,576满足以上条件。
输入格式
无输入
输出格式
输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。
代码:
#include<bits/stdc++.h> using namespace std; int main() { ?? ?int i; ?? ?int j[1000]; ?? ?for(i=1;i<=9;i++) ?? ? ? ?j[i]=i; ?? ?int t1,t2,t3; ?? ?while(next_permutation(j+1,j+10))//将所有的排列方式都判断一遍,若符合则输出直到所有排列? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?方式结束为止。 ?? ?{ ?? ? ? ?t1=j[1]*100+j[2]*10+j[3]; ?? ? ? ?t2=j[4]*100+j[5]*10+j[6]; ?? ? ? ?t3=j[7]*100+j[8]*10+j[9]; ?? ? ? ?if(t2==2*t1&&t3==3*t1) ?? ? ? ? ? cout<<t1<<" "<<t2<<" "<<t3<<endl; ?? ?} ?? ?return 0; }
|