1. 程式人生 > >luogu P1008 三連擊

luogu P1008 三連擊

第一個 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 三連擊