luogu P1008 三連擊
阿新 • • 發佈:2018-04-14
第一個 break 判斷 RM 註意 輸入 std () tdi
題目背景
本題為提交答案題,您可以寫程序或手算在本機上算出答案後,直接提交答案文本,也可提交答案生成程序。
題目描述
將1,2,…,9共9個數分成三組,分別組成三個三位數,且使這三個三位數構成1:2:3的比例,試求出所有滿足條件的三個三位數。
輸入輸出格式
輸入格式:
木有輸入
輸出格式:
若幹行,每行3個數字。按照每行第一個數字升序排列。
思想過程:
既然這幾個數成比例那就可以先將這幾個數%出來,然後判斷這些數是不是1,2,3...9;
怎麽判斷呢?
(1)開個bool型數組,出現一次記錄一下,出現兩次顯然不成立,break;(註意每次清零)
(2)既然這幾個數要1-9,那麽這幾個數相乘一定等於1*2*3*...9咯,所以你可以將這幾個數乘起來,判斷是否想等,所以這就解決咯。
(目前只想到這兩種判斷方法,若有更好思想,歡迎您提議補充)
代碼在此:
#include<cstdio> int main() { int a,b,c; for(a=123; a<=333; a++) //枚舉不超過333,因為三個數a,2a,3a都是三位數。 { b=a*2; c=a*3; if((a/100)*(a/10%10)*(a%10)*(b/100)*(b/10%10)*(b%10)*(c/100)*(c/10%10)*(c%10)==1*2*3*4*5*6*7*8*9) // 將每一位分解開來,不多解釋。 成立則輸出。{ printf("%d %d %d\n",a,b,c); } } return 0; }
此為個人略解,轉載請標明出處:http://www.cnblogs.com/rmy020718/p/8834511.html
那年你入對成雙一點朱砂,可曾記得我眉目淒涼粗飯淡茶,一語落罷,卻是白衣非他。
luogu P1008 三連擊