題目描述
將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。
做法2(題解大佬的想法):#include
#include
#include
#include
#include
#include
using namespace std;
intmain()
}}else
break
;//一旦第二個數或第三個數超過三位數,後面就更不用看了,直接跳出節省時間}if
(cnt ==0)
//如果沒有解,就輸出no!!!
system
("pause");
return0;
}
運用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個數字。按照每行第乙個數字公升序排列。輸入輸出樣例 輸入樣例...