1. 程式人生 > >洛谷 P1618 三連擊(升級版)

洛谷 P1618 三連擊(升級版)

span main 比例 pre color clu 輸出 std mut

題目描述

將1,2,…,9共9個數分成三組,分別組成三個三位數,且使這三個三位數的比例是A:B:C,試求出所有滿足條件的三個三位數,若無解,輸出“No!!!”。

//感謝黃小U飲品完善題意

輸入輸出格式

輸入格式:

三個數,A B C。

輸出格式:

若幹行,每行3個數字。按照每行第一個數字升序排列。

輸入輸出樣例

輸入樣例#1:
1 2 3
輸出樣例#1:
192 384 576
219 438 657
273 546 819
327 654 981

說明

保證A<B<C

全排列式 枚舉

屠龍寶刀點擊就送

#include <algorithm>
#include <cstdio>

using namespace std;
int main()
{
    int sum=0,a[11]={0,1,2,3,4,5,6,7,8,9};
    int A,B,C;
    scanf("%d%d%d",&A,&B,&C);
    do
    {
        int sum1=0,sum2=0,sum3=0;
        for(int i=1;i<=9;i++)
        {
            
if(i<=3) sum1=sum1*10+a[i]; if(i>3&&i<=6) sum2=sum2*10+a[i]; if(i>6&&i<=9) sum3=sum3*10+a[i]; } if(sum1*B==sum2*A&&sum1*C==sum3*A) sum++, printf("%d %d %d\n",sum1,sum2,sum3); }while(next_permutation(a+1,a+11
-1)); if(!sum) printf("No!!!\n"); return 0; }

洛谷 P1618 三連擊(升級版)