刘汝佳p35,2-6(123排列)算法竞赛入门经典第二版

来源:互联网 发布:大数据方向好不好 编辑:程序博客网 时间:2024/06/13 06:00

算法竞赛入门经典第二版
刘汝佳p35 , 2-6
用1,2,3,….,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。输出所有解。

#include<cstdio>#include<iostream>using namespace std;int nn(int a,int *n){    //cout<<"a"<<a<<endl;    for(int i=0;i<8;i++)    {        if(a==n[i])        {            //cout<<n[i]<<endl;            n[i]=-1;            return 0;        }    }    return 1;}void num(int a){    int n[9];    for(int i=0;i<8;i++)        n[i]=i+1;    int b=a*2;    int c=a*3;    int s[9];    s[0]=a/100;    s[1]=(a/10)%10;    s[2]=a%10;    s[3]=b/100;    s[4]=(b/10)%10;    s[5]=b%10;    s[6]=c/100;    s[7]=(c/10)%10;    s[8]=c%10;    for(int i=0;i<8;i++)    {        //cout<<"si"<<s[i]<<endl;        if(nn(s[i],n)==1)        {            //cout<<"return"<<endl;            return;        }    }    cout<<a<<" "<<b<<" "<<c<<endl;}int main(){    for(int a=100;a<=333;a++)    {        num(a);    }    return 0;}

所以结果是
273 546 819

阅读全文
0 0