洛谷P1008 三連擊
阿新 • • 發佈:2019-01-05
題目背景
本題為提交答案題,您可以寫程式或手算在本機上算出答案後,直接提交答案文字,也可提交答案生成程式。
題目描述
將1,2,…,9共9個數分成三組,分別組成三個三位數,且使這三個三位數構成1:2:3的比例,試求出所有滿足條件的三個三位數。
輸入輸出格式
輸入格式:木有輸入
輸出格式:若干行,每行3個數字。按照每行第一個數字升序排列。
輸入輸出樣例
輸入樣例#1:輸出樣例#1:
192 384 576
* * *
...
* * *
(輸出被和諧了)
WriteUp:
陣列記錄數字出現次數,迴圈遍歷可能的出現數字即可。
ps: 洛谷評測機似乎不支援初始化陣列採用
參考AC程式碼:
#include <cstdio> #include <iostream> #include <cstdlib> #include <cmath> using namespace std; int num[9]={0}; int main(void){ int j,k; for (int i=123;i*3<=987;i++) { //陣列置0 for (int b=0;b<9;b++) { num[b]=0; } //取i的各個位數字,放入陣列記錄次數 num[i/100-1]++; num[i/10%10-1]++; num[i%10-1]++; //取j的各個位數字,放入陣列記錄次數 j = i*2; num[j/100-1]++; num[j/10%10-1]++; num[j%10-1]++; //取k的各個位數字,放入陣列記錄次數 k = i*3; num[k/100-1]++; num[k/10%10-1]++; num[k%10-1]++; for (int a=0;a<9;a++) { //次數不為1,不符題意,跳過 if (num[a]!=1) { break; } //陣列檢查完畢,輸出 if (a==8) { printf("%d %d %d\n",i,j,k); } } } return 0; }