洛谷 1618 三连击升级版输出样例#1: 192 384 576 219 438 657 273 546 819 327 654 981

来源:互联网 发布:哪里招聘淘宝客服的 编辑:程序博客网 时间:2024/05/26 02:55

题目描述

将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。

//感谢黄小U饮品完善题意

输入输出格式

输入格式:

三个数,A B C。

输出格式:

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

输入输出样例

输入样例#1:

1 2 3
输出样例#1:
192 384 576219 438 657273 546 819327 654 981
A<B<C

觉得思路真的很重要!

#include<iostream>#include<stdio.h>#include<cstring>using namespace std;int main(){    int a[100];    int t=0,q,j,k,i,d,b,c,z=0;     cin>>d>>b>>c;   z=0;   for(j=123;j<=987;j++){        t=0;        k=j*b/d;                              //a b c 这里要注意        i=j*c/d;        memset(a,0,sizeof(a));        a[j/100]++; a[j/10%10]++; a[j%10]++;        a[k/100]++; a[k/10%10]++; a[k%10]++;        a[i/100]++; a[i/10%10]++; a[i%10]++;        for(q=1;q<10;q++){            if(a[q]==1)                t=t+1;        }        if(t==9){            z=1;            cout<<j<<" "<<k<<" "<<i<<endl;        }   }   if(z!=1){      cout<<"No!!!"<<endl;   }   return 0;}