题目描述

将 1, 2,\ldots, 91,2,…,9 共 99 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:CA:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!

//感谢黄小U饮品完善题意

输入格式

三个数,A,B,CA,B,C。

输出格式

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

输入输出样例

输入 #1复制

1 2 3

输出 #1复制

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

说明/提示

保证 A<B<C。

思路简洁:

可以通过枚举第一个数字,通过确定的比例算出另外两个数字(不一定是存在的),通过检查和判断,筛选出符合要求的答案。这样便极大的降低算法的复杂度。

#include<stdio.h>
#include<stdlib.h>
int s[10];
void go(int x) {//利用数组的下标自然有序将三组数字的每一位数对应的下标的值赋值为1s[x % 10] = 1;s[x / 10 % 10] = 1;s[x / 100 % 10] = 1;
}
int check(int a,int b,int c){//check函数用来检查三组数字是否满足需求memset(s, 0, sizeof(s));//清0数组if (b > 999 || c > 999)return 0;//显然b和c可能不是三位数,此种情况直接return 0go(a), go(b), go(c);for (int i = 1; i <= 9; i++) {//下标从1到9遍历,如果三组数字满足每一位数各不相同最终便会结束循环return 1 否则return 0if (!s[i])return 0;}return 1;}
int main(){long  a, b, c, i,t1,t2; int cnt = 0;scanf("%ld %ld %ld", &a, &b, &c);//录入比例for (i = 123; i <= 987; i++) {//只枚举一个数,借此数和比例暂时求出另外两个数字(可能不存在)//因为要求每组三位数数字的每一位数字都不同,此数的范围显然是123-987if (i * b % a || i * c % a)continue;// 如果i*b%a或者i*c%a不为0,即除不断,那么由i*b/a算出来的数显然是不符合要求饿t1 = i * b / a;t2 = i * c / a;if (check(i, t1, t2)) {printf("%ld %d %d\n", i, t1, t2); cnt++;}}if (!cnt)printf("No!!!");return 0;
}

洛谷P1618 三连击(升级版)C语言 暴力枚举 详解相关推荐

  1. 洛谷[P3799 妖梦拼木棒] {暴力枚举} 奋斗的珂珂~

    洛谷[P3799 妖梦拼木棒] {暴力枚举} 题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案 ...

  2. 洛谷-P1618 三连击(升级版)

    题目描述 将1,2,-,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出"No!!!". 输入格式 三个数, ...

  3. 洛谷P1618 三连击(升级版)

    1.首战自己写:(巨蠢)80分 #include<iostream> using namespace std; int tc[10000][3], A_[10000], B_[10000] ...

  4. 洛谷 P1618 三连击(升级版)

    题目描述 将 1,2,-,9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!. //感谢黄小U饮品完善题意 输 ...

  5. 洛谷p1618 三连击(升级版)(python)

    题目:用1-9组成三个数字各不重复的三位数,使这三个三位数满足一定的比例关系,算出所有解.若无解,输出"No!!!" 这道题当时想了好久,以下我觉得很好的一个思路是一位朋友给我的. ...

  6. 洛谷题目[NOIP2016 提高组]P1563 玩具谜题 详解<每日一题>

    题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singersi ...

  7. 洛谷:P1042 [NOIP2003 普及组] 乒乓球 C++详解

    题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中 11 分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位,他 ...

  8. 洛谷 P1618 STL全排列方法

    洛谷 P1618 & STL全排列方法 今天在做洛谷上暴力专项训练,在解P1618题目的过程中发现了STL中全排列在解题中的妙用,特在此分享. 首先让我们先来看一下这道题: P1618三连击( ...

  9. (转)C语言位运算详解

    地址:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html C语言位运算详解 作者:911 说明:本文参考了http://www2.ts ...

最新文章

  1. 去除网页上图片的虚框和a文字链接上的虚框
  2. ajax响应码,jQuery 使用$ .ajax()处理HTTP响应代码
  3. 如何下载B站视频到本地?
  4. sqlserver2005查询表字典
  5. 下载Linux系统内文件到Windows
  6. 单纯形法算法实现--java版
  7. Flume-----八种采集方案
  8. sudo,普通用户的提权操作,越权跟踪
  9. 【git】出现Merge Conflict,解冲突
  10. 12弦电吉他音源 Orange Tree Samples Evolution Rick 12 Kontakt
  11. 三国演义告诉你的60条真理
  12. 人生七工具:SWOT、PDCA、6W2H、SMART、WBS、时间管理、OKR
  13. java读取二进制流文件_java分别通过字节流、字符流、二进制读取文件的代码
  14. am335x+wm8960音频基于linux 4.9.41移植
  15. RIGOL示波器测试特殊功能
  16. uiautomator2 半自动发布视频脚本
  17. dell 1464 升级固态硬盘ssd 记录
  18. Redis的Multi的内幕真相
  19. Bmob小程序模板消息
  20. 安全修复之Web——HTTP X-XSS-Protection缺失

热门文章

  1. socket广播报文收发简单梳理
  2. ZYNQ学习笔记(3)-局部重构Partial Reconfiguration
  3. 轻量级程序编辑器的选择:EmEditor、Editplus等---Web开发系列之工具篇(一)
  4. 用PS修改图片上的数字
  5. 医学图像处理:CT与CBCT
  6. 原创|我为什么不建议你等公司倒闭后,再找工作!
  7. Java复数类实现加减乘除运算
  8. Teacher's pet理解成“老师的宠物”?其实并不是。。。
  9. 在线直播间和视频追帧【转载】
  10. HTML重点知识小结①