题目描述 Description

将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成A:B:C的比例,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。
 输入输出格式 Input/output
输入格式:
三个数,A B C。
输出格式:
若干行,每行3个数字。按照每行第一个数字升序排列。
 输入输出样例 Sample input/output
样例测试点#1
输入样例:
1 2 3
输出样例:
 

192 384 576
219 438 657
273 546 819
327 654 981

说明 description
保证A<B<C
思路:从(1~1000/c)循环,然后按比例赋值,每一位数放入一个数组的每一位,判断有多少个数字被用过了,如果有9个(也就是刚好用完),输出即可
提示:记得判断按比例赋值后是否超过了1000,超过了跳出即可
代码如下:
 #include<iostream>
using namespace std;
int main()
{
int a,b,c,x[],a1,a2,a3;
int y=,ans=,flag[]={},i,j; //用flag统计数字是否用过
cin>>a1>>a2>>a3; //输入
for(j=;j<=/a3;j++)
{
y=;
for(i=;i<;i++)
flag[i]=; //全归0
a=a1*j;
b=a2*j; //按比例赋值
c=a3*j;
if(a>=||b>||c>)
break; //超出范围的情况
/*=================================*/
x[]=a/;
x[]=(a/)%;
x[]=a%;
x[]=b/;
x[]=(b/)%; //把每一位数放入数组中
x[]=b%;
x[]=c/;
x[]=(c/)%;
x[]=c%;
/*=================================*/
for(i=;i<;i++)
flag[x[i]-]=; //统计用过的数(用过就变成1)
for(i=;i<;i++)
y+=flag[i]; //统计用过多少个
if(y==) //如果y=9的话,就代表所有数都用过,输出
{
cout<<a<<" "<<b<<" "<<c<<endl;
ans++; //有满足的a b c,ans就不等于0
}
}
if(!ans) //没有满足的,输出No!!!
cout<<"No!!!";
}

最新文章

  1. 【原创】.NET平台机器学习组件-Infer.NET连载(二)贝叶斯分类器
  2. WMI测试
  3. ios 音乐播放
  4. LNK1169: one or more multiply defined symbols found
  5. iOS开发中的数据安全隐患和解决方案
  6. Bestcoder Round# 80
  7. nefu 120 梅森素数
  8. CentOS安装 pure-ftpd
  9. 移动web前端小结(一)
  10. WIA设备批量扫描
  11. C++ STL之string常用指令
  12. C#委托,事件,匿名委托
  13. 深度学习在 CTR 中应用
  14. 201521123118《java程序与设计》第10周学习总结
  15. mysql的报错
  16. 微信小程序日历面板插件
  17. Linux Oracle bash: &ldquo;sqlplus / as sysdba&rdquo;: command not found 解决方法
  18. python之名称空间
  19. Django组件——分页器和中间件
  20. JQuery的常用选择器

热门文章

  1. MariaDB数据解压版安装(10.0.16)
  2. ios下点击穿透focus获取问题
  3. Java的URL来下载网页源码
  4. 【Python】回文
  5. Python学习笔记——进阶篇【第八周】———进程、线程、协程篇(Socket编程进阶&amp;多线程、多进程)
  6. 常见dos命令
  7. 最近遇到的两个IE下的问题(IE兼容问题)
  8. 使用JS通过正则限制input的输入
  9. [Rails] 从 Request 到 Response(2)
  10. logstash 输出到elasticsearch 自动建立index