最新消息:

niop习题-P1008 三连击

NOIP 少儿编程 1990浏览 0评论

题目描述

1,2,,99个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。

输入输出格式

输入格式:

木有输入

输出格式:

若干行,每行3个数字。按照每行第1个数字升序排列。

输入输出样例

输入样例#1:

输出样例#1:

192 384 576
* * *
...

* * *

 

代码:

 

#include<bits/stdc++.h>
using namespace std;
int main()
{
  int a[10];  
  int sum; 
  //符合条件的第一个数,范围应该在123~329之间 
  for(int i=123;i<=329;i++)  
  {
    //初始化
    for(int j=0;j<=9;j++) a[j]=0;         
    sum=0;          
    //对3个数分别进行统计 
    for(int j=1;j<=3;j++)  
    {
      //"1"表示数字出现,默认为"0"。举例:如果出现数字5,则数组a[5]=1
      a[i*j/100] = 1;    
      a[i*j/10%10] = 1;
      a[i*j%10] = 1;
    }
    //把数组中各位数字相加,如果等于9,说明每个数字都出现,且仅出现1次,满足题目条件
    for(int j=1;j<=9;j++) sum += a[j];
    if(sum==9)  cout << i << ' ' << i*2 << ' ' << i*3 <<endl;  
  }  return 0;
}

您必须 登录 才能发表评论!