洛谷-P1618 三连击(升级版)
题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。
输入格式
三个数,A B C。
输出格式
若干行,每行3个数字。按照每行第一个数字升序排列。
输入输出样例
输入 #1
1 2 3
输出 #1
192 384 576
219 438 657
273 546 819
327 654 981
说明/提示
保证A<B<C
题目大意及分析
题目要求就是在1~9九个数中三个数为一组排列,组成三个三位数,并且需要满足 A:B:C 的比例。
因为这三个数不能重复选,所以可以得到最小的一个三位数为123。所以就可以从123开始暴力求解了,有两个小细节如下:
- 所得到的三位数中不能含有0这个数。
- 这个三位数自身元素也不能够重复。
代码
#include<iostream>
#include<algorithm>
using namespace std;int main()
{int q,b,c,sum=0,temp;cin >> q >> b >> c;for(int i=123;i<999;i++){int a[10]={0},s=0;if(i/q*c>999)break;if(i%q!=0)continue;temp = i;//第一个数判断开始;for(int n=0;n<3;n++){if(temp%10==0||a[temp%10]==1){s=1;break;}a[temp%10]=1;temp = temp / 10;}if(s==1) continue;int j=i/q*b;temp = j;//第二个数判断开始;for(int n=0;n<3;n++){if(a[temp%10]==0&&temp%10!=0)a[temp%10]=1;else{s=1;break;}temp = temp/10;}if(s==1) continue;int k=i/q*c;temp = k;//第三个数判断开始;for(int n=0;n<3;n++){if(a[temp%10]==0 && temp%10!=0)a[temp%10]=1;else{s=1;break;}temp = temp/10;}if(s==1) continue;else{cout << i << " " << j << " " << k <<endl;sum++;}}if(sum==0){cout << "No!!!" <<endl;}return 0;
}
更多内容大家可以访问我的个人博客:一只大大怪
洛谷-P1618 三连击(升级版)相关推荐
- 洛谷P1618 三连击(升级版)C语言 暴力枚举 详解
题目描述 将 1, 2,\ldots, 91,2,-,9 共 99 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:CA:B:C,试求出所有满足条件的三个三位数,若无解,输出 No ...
- 洛谷P1618 三连击(升级版)
1.首战自己写:(巨蠢)80分 #include<iostream> using namespace std; int tc[10000][3], A_[10000], B_[10000] ...
- 洛谷 P1618 三连击(升级版)
题目描述 将 1,2,-,9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!. //感谢黄小U饮品完善题意 输 ...
- 洛谷p1618 三连击(升级版)(python)
题目:用1-9组成三个数字各不重复的三位数,使这三个三位数满足一定的比例关系,算出所有解.若无解,输出"No!!!" 这道题当时想了好久,以下我觉得很好的一个思路是一位朋友给我的. ...
- 洛谷 P1618 STL全排列方法
洛谷 P1618 & STL全排列方法 今天在做洛谷上暴力专项训练,在解P1618题目的过程中发现了STL中全排列在解题中的妙用,特在此分享. 首先让我们先来看一下这道题: P1618三连击( ...
- 三连击(升级版)题解(洛谷P1618)
看了洛谷的几篇题解之后,感觉自己的代码思路更明确,洛谷那边也交不上题解了,就只好写在这里咯~ 先直接放题目吧~ 思路 当模拟题来做,先枚举第一个数,首先要明确对一个数是否合法的几个条件: 1. 各个位 ...
- 三连击(升级版)(洛谷-P1618)
题目描述 将1,2,-,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出"No!!!". 输入输出格式 输入 ...
- 暴力枚举——三连击(洛谷 P1618)
分析: 按照套路,先找可枚举的元素:3个3位数 可以9重for来枚举,但很显然会超时,所以我们需要去掉一些枚举的数, 因为事先给定了比例,所以我们可以枚举第一3位数来确定另外两个,但是另外两个是不一定 ...
- 洛谷 P1008 三连击 题解
[P1009 普及组] 三连击 题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序. 题目描述 将 1, 2,...... , 9 共 9 个数分 ...
最新文章
- 树莓派小车python操作流程--龙邱科技
- MS SQL SERVER导出表结构到Excel
- 简略图解:输入 url 到出现页面,浏览器做了什么?
- Antd 修改主题颜色2018 最新版 填坑记录
- html5求6的阶乘,.net 求数的阶乘
- php判断中英文请求,并实现跳转
- 摆胯教学分解_聚十年求索,筑理想课堂——厦门市梧侣学校十周年庆区级教学小学数学(数与形)...
- access百度翻译 get_Asp.NET调用百度翻译
- 《数据结构C语言版》——线性表详解,你一定能够看得懂学得会的宝典
- mysql count null_一个不可思议的MySQL慢查分析与解决
- Django搭建个人博客之制作app并配置相关环境
- 基于YOLO3的人数统计程序
- poi 垂直、水平居中
- 核桃油是孕妇的最佳食用油吗?
- [ffmpeg] 视频码率压缩
- fastadmin-微信小程序实战课程:todolist项目文档(课件)整理汇总
- 正雅GS颌位重建技术为隐形正畸打开新篇章
- 叩响港交所大门,KK集团能否成为“中国版秋叶原”?
- 68个单位134项 | 2020年国家自然科学基金专项项目立项名单发布
- php post fsockopen,php的fsockopen post表单