P1008 三连击

洛谷团队希望加入!
题目背景
本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。

题目描述
将1,2, \cdots ,91,2,⋯,9共99个数分成33组,分别组成33个三位数,且使这33个三位数构成1:2:31:2:3的比例,试求出所有满足条件的33个三位数。

输入格式
木有输入

输出格式
若干行,每行33个数字。按照每行第11个数字升序排列。

输入输出样例
输入 #1复制

输出 #1复制
192 384 576


...


(输出被和谐了)

#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;  
}
posted @ 2020-10-02 14:24  xmcword  阅读(216)  评论(0编辑  收藏  举报