P1618 三連擊(公升級版)

2021-09-01 12:20:36 字數 1176 閱讀 8967

題目描述

將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做法1:

讓第乙個數i從123(最小的三位且數字不重複的數)起迴圈,一直找到987(最大的三位且數字不重複的數),則第二個數就是i * b/a,第三個數就是i * c/a。

#include

#include

#include

#include

#include

#include

using namespace std;

intmain()

}}else

break

;//一旦第二個數或第三個數超過三位數,後面就更不用看了,直接跳出節省時間}if

(cnt ==0)

//如果沒有解,就輸出no!!!

system

("pause");

return0;

}

做法2(題解大佬的想法):

運用next_permutation()函式,將1-9的數進行全排列,判斷每次排列除的數是否滿足比值為a:b:c即可。

這函式挺常用了,為什麼我沒有想到!

#include

using namespace std;

int a[10]

=;intmain()

}while

(next_permutation

(a+1

,a+10))

;//stl中的下乙個排列函式;

if(h==

0) cout<<

"no!!!"

;//沒有解輸出no;

return0;

}

P1618 三連擊(公升級版)

將1,2,9共9個數分成三組,分別組成三個三位數,且使這三個三位數的比例是a b c,試求出所有滿足條件的三個三位數,若無解,輸出 no 感謝黃小u飲品完善題意 輸入格式 三個數,a b c。輸出格式 若干行,每行3個數字。按照每行第乙個數字公升序排列。輸入樣例 1 複製 1 2 3輸出樣例 1 複...

P1618 三連擊(公升級版)

題目描述 將1,2,9共9個數分成三組,分別組成三個三位數,且使這三個三位數的比例是a b c,試求出所有滿足條件的三個三位數,若無解,輸出 no 感謝黃小u飲品完善題意 輸入格式 三個數,a b c。輸出格式 若干行,每行3個數字。按照每行第乙個數字公升序排列。輸入輸出樣例 輸入 1複製 1 2 ...

P1618 三連擊(公升級版)

題目描述 將1,2,9共9個數分成三組,分別組成三個三位數,且使這三個三位數的比例是a b c,試求出所有滿足條件的三個三位數,若無解,輸出 no 感謝黃小u飲品完善題意 輸入輸出格式 輸入格式 三個數,a b c。輸出格式 若干行,每行3個數字。按照每行第乙個數字公升序排列。輸入輸出樣例 輸入樣例...