P1008 三連擊

題目描述:將1,2,…,9共9個數(shù)分成三組,分別組成三個三位數(shù),且使這三個三位數(shù)構(gòu)成1:2:3的比例,試求出所有滿足條件的三個三位數(shù)。
分析:由這9個數(shù)構(gòu)成的三位數(shù)最小為123,最大為987。所以遍歷范圍是123 ~ 987/3 = 329,每次取定最小的數(shù)后得到其2倍、3倍,將這三個數(shù)的每一位存到數(shù)組中,用排序保證每個數(shù)字只用一次。
C++代碼:

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<vector>
#define ll long long
using namespace std;
#define inf 0x3f3f3f3f
int main()
{
    int i,j,a[15];
    bool ans;
    for (i=123;i<=329;i++)
    {
        a[1]=i%10;
        a[2]=i%100/10;
        a[3]=i/100;
        a[4]=2*i%10;
        a[5]=2*i%100/10;
        a[6]=2*i/100;
        a[7]=3*i%10;
        a[8]=3*i%100/10;
        a[9]=3*i/100;
        sort(a+1,a+10);
        ans=true;
        for (j=1;j<=9;j++) 
          if (a[j]!=j)  //說明前面有數(shù)字出現(xiàn)次數(shù) > 1
          ans=false;
        if (ans) cout<<i<<" "<<i*2<<" "<<i*3<<endl;
    }
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容