随手练——洛谷-P1008 / P1618 三连击(暴力搜索)

1.普通版

 

第一眼看到这个题,我脑海里就是,“我们是不是在哪里见过~”,去年大一刚学C语言的时候写过一个类似的题目,写了九重循环。。。。就像这样(在洛谷题解里看到一位兄台写的。。。。超长警告,慎重点开

#include <stdio.h>
#include <cstdlib>
int main()
{int i[9];for (i[0] = 1; i[0] <= 9; i[0]++){for (i[1] = 1; i[1] <= 9; i[1]++){int p1=0;if (i[1] == i[0]) p1 = 1;if (p1 != 1) {for (i[2] = 1; i[2] <= 9; i[2]++){int p2=0;for (int j2 = 0; j2 < 2; j2++) if (i[2] == i[j2]) p2 = 2;if (p2 != 2) {for (i[3] = 1; i[3] <= 9; i[3]++){int p3=0;for (int j3 = 0; j3 < 3; j3++) if (i[3] == i[j3]) p3 = 3;if (p3 != 3) {for (i[4] = 1; i[4] <= 9; i[4]++){int p4=0;for (int j4 = 0; j4 < 4; j4++) if (i[4] == i[j4]) p4 = 4;if (p4 != 4) {for (i[5] = 1; i[5] <= 9; i[5]++){int p5=0;for (int j5 = 0; j5 < 5; j5++) if (i[5] == i[j5]) p5 = 5;if (p5 != 5) {for (i[6] = 1; i[6] <= 9; i[6]++){int p6=0;for (int j6 = 0; j6 < 6; j6++) if (i[6] == i[j6]) p6 = 6;if (p6 != 6) {for (i[7] = 1; i[7] <= 9; i[7]++){int p7=0;for (int j7 = 0; j7 < 7; j7++) if (i[7] == i[j7]) p7 = 7;if (p7 != 7) {for (i[8] = 1; i[8] <= 9; i[8]++){int p8=0;for (int j8 = 0; j8 < 8; j8++) if (i[8] == i[j8]) p8 = 8;if (p8 != 8) {//printf("%d %d %d %d %d %d %d %d %d\n", i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]);int a = 100 * i[0] + 10 * i[1] + i[2];int b = 100 * i[3] + 10 * i[4] + i[5];int c = 100 * i[6] + 10 * i[7] + i[8];double d1 = double(a) / b;double d2 = double(c) / b;if (d1 == 0.5 && d2 == 1.5){printf("%d %d %d\n", a, b, c);//system("pause");
                                                                        }}}}}}}}}}}}}}}}}}system("pause");return 0;
}
View Code

假设这三个数是 x : y : z  = 1 : 2 : 3,那么z最大可以为987,那么x最大到329(其实比329还要小几个数,因为数字重复了,懒得去抠了),那就好办了,x 从123循环到329,判重就完事了。

#include <iostream>
#include <string.h>
using namespace std;
int a[10];
//判重,且不能带0
int IsRepeat(int x) {memset(a, 0, sizeof(int) * 10);while (x) {int t = ++a[x % 10];if (t == 2 || a[0] == 1) return 1;x /= 10;}return 0;
}
int IsRepeat2(int x,int y,int z) {memset(a, 0, sizeof(int) * 10);while (x) {a[x % 10]++; a[y % 10]++; a[z % 10]++;if (a[0] > 0) return 1;x /= 10; y /= 10; z /= 10;}for (int i = 1; i < 10; i++) if (a[i] > 1) return 1;return 0;
}
int main() {//x,y,z 1:2:3,z最大可以为987,那么1最大到329for (int x = 123; x <= 329; x++) {if (IsRepeat(x)) {continue;}//如果x不重复,y,z 也不会重复int y = x * 2; int z = x * 3;if (!IsRepeat2(x, y, z)) {cout << x << " " << y << " " << z << endl;}}return 0;
}

 2.升级版

就是把原来的比例从1:2:3,变成了A:B:C。

思路还是差不多,中间continue判断,写的好像有点乱,但是确实不能少。

#include <iostream>
using namespace std;
bool IsRepeat(int x) {int a[10] = { 0 };while (x) {int t = a[x % 10]++;if (t == 2 || a[0] == 1)return true;x /= 10;}return false;
}
bool IsRepeat3(int x, int y, int z) {int a[10] = { 0 };while (x) {a[x % 10]++; a[y % 10]++; a[z % 10]++;if (a[0] > 0) return true;x /= 10; y /= 10; z /= 10;}for (int i = 1; i < 10; i++)if (a[i] > 1) return true;return false;
}
int main() {int A, B, C, flag = 0;cin >> A >> B >> C;for (int i = 123; i < 987; i++) {int j, k;if (IsRepeat(i))continue;if (i * B % A == 0) j = i * B / A;else continue;if (j > 987)continue;if (j*C%B == 0) {k = j * C / B;if (k > 987 || IsRepeat3(i, j, k))continue;flag = 1;cout << i << " " << j << " " << k << endl;}}if (!flag)cout << "No!!!" << endl;return 0;
}

 

转载于:https://www.cnblogs.com/czc1999/p/10360320.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础知识面试题

Java基础知识面试题Java概述基础语法数据类型编码注释访问修饰符关键字 final this super static流程控制语句面向对象类和接口变量和方法内部类重写与重载对象相等判断值传递Java包IO流反射String相关包装类相关Java概述 JVM、JRE和JDK的关系 JVM Java Virtual Machine是Jav…

数学和计算机的应用视频教学反思,数学多媒体教学反思.doc

数学多媒体教学反思篇一&#xff1a;数学多媒体教学反思(1456字)多媒体辅助课堂教学&#xff0c;作为新型的教学媒体&#xff0c;当数学教学与它们密切整合时&#xff0c;它们能为新型教学结构的创建提供最理想的教学环境&#xff0c;它们能为数学课程改革提供全新的教学方式和…

html:(3):认识html标签和标签的语法

让我们通过一个网页的学习&#xff0c;来对html标签有一个初步理解。平常大家说的上网就是浏览各种各式各样的网页&#xff0c;这些网页都是由html标签组成的。下面就是一个简单的网页。效果图如下&#xff1a; 我们来分析一下&#xff0c;这个网页由哪些html标签组成&#xff…

JPA-EntityManager.merge()

EntityManager#merge merge() 用于处理 Entity 的同步。即数据库的插入和更新操作 merge的几种情况 1. 若传入的是一个临时对象 package jpa.test;import com.jpa.entity.Customer; import org.junit.After; import org.junit.Before; import org.junit.Test;import javax.pers…

[Leedcode][JAVA][第76题][最小覆盖子串]滑动窗口]

【问题描述】[第76题][最小覆盖子串][中等] 给你一个字符串 S、一个字符串 T&#xff0c;请在字符串 S 里面找出&#xff1a;包含 T 所有字符的最小子串。示例&#xff1a;输入: S "ADOBECODEBANC", T "ABC" 输出: "BANC" 说明&#xff1a;如…

计算机应用综合实践实验心得,综合实践活动培训心得体会范文(精选5篇)

综合实践活动培训心得体会范文(精选5篇)在平日里&#xff0c;心中难免会有一些新的想法&#xff0c;有这样的时机&#xff0c;要好好记录下来&#xff0c;这样能够让人头脑更加清醒&#xff0c;目标更加明确。怎样写好心得体会呢&#xff1f;下面是小编为大家整理的综合实践活动…

天梯赛-是否完全二叉搜索树

将一系列给定数字顺序插入一个初始为空的二叉搜索树&#xff08;定义为左子树键值大&#xff0c;右子树键值小&#xff09;&#xff0c;你需要判断最后的树是否一棵完全二叉树&#xff0c;并且给出其层序遍历的结果。 输入格式&#xff1a; 输入第一行给出一个不超过20的正整数…

html:(4):认识html文件基本结构和认识head标签

认识html文件基本结构 这一节中我们来学习html文件的结构&#xff1a;一个HTML文件是有自己固定的结构的。 <html><head>...</head><body>...</body> </html> 代码讲解&#xff1a; 1. <html></html>称为根标签&#xff0…

python编程习惯

1.使用局部变量 2.减少函数调用次数 3.采用映射替代条件查找 4.直接迭代序列元素 5.采用生成器表达式替代列表解析 6.先编译后调用 7.模块编程习惯转载于:https://www.cnblogs.com/chbo/p/10361863.html

[Leedcode][JAVA][第4题][寻找两个正序数组中的中位数][二分查找][双指针]

【问题描述】[困难] 给定两个大小为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出这两个正序数组的中位数&#xff0c;并且要求算法的时间复杂度为 O(log(m n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 [1, 3] nums2 [2]则…

html 常用字符,html 常用特殊字符

HTML常用特殊字符最常用的字符实体(Character Entities)空格<小于<<>大于>>&&符号&&"双引号""其他常用的字符实体(Character Entities)©版权©© 注册商标乘号除号 字符 十进制字符编号 实体名字! !---"…

html:(5):了解html的代码注释和语义化

了解HTML的代码注释 什么是代码注释&#xff1f;代码注释的作用是帮助程序员标注代码的用途&#xff0c;过一段时间后再看你所编写的代码&#xff0c;就能很快想起这段代码的用途。代码注释不仅方便程序员自己回忆起以前代码的用途&#xff0c;还可以帮助其他程序员很快的读懂…

天梯-红色警报

5-9 红色警报 (25分) 战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序&#xff0c;当失去一个城市导致国家被分裂为多个无法连通的区域时&#xff0c;就发出红色警报。注意&#xff1a;若该国本来就不完全连通&#xff0c;是分裂的k个区域&#xff0c;而失…

1114D . Flood Fill

这道题还可以转化成最长回文串&#xff0c;实际的答案是 离散化后的数组最长回文串切成一半有几个数字&#xff0c;这些数字就是中间的数字需要对齐的对象&#xff0c;所以不用改变 #include <bits/stdc.h> using namespace std;const int maxN 5008;int n; int dp[maxN…

[Leedcode][JAVA][第287题][寻找重复数][HashSet][二分查找][快慢指针]

【问题描述】[中等] 给定一个包含 n 1 个整数的数组 nums&#xff0c;其数字都在 1 到 n 之间&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。假设只有一个重复的整数&#xff0c;找出这个重复的数。输入: [1,3,4,2,2] 输出: 2说明&#xff1a…

华南师范大学计算机学院广东录取,华南师范大学2020年广东省各批次分专业录取分数统计(含位次)...

看来广东考生也对师范类院校比较青睐&#xff0c;为什么这么说呢&#xff1f;因为前段时间&#xff0c;小编写了两篇关于广东省内师范院校(韩山师范学院、岭南师范学院)的录取情况以后&#xff0c;陆续有考生咨询华南师范大学的录取情况&#xff0c;可见师范院校是比较受考生欢…

html:(6):body标签和p标签

<body>标签&#xff0c;网页上显示的内容放在这里 还记得body标签吗&#xff0c;在上一章节我们简单介绍过&#xff1a;在网页上要展示出来的页面内容一定要放在body标签中。如下图是一个新闻文章的网页。 在浏览器中的显示效果&#xff1a; <!DOCTYPE HTML> <h…

蓝桥杯-K好数

问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字&#xff0c;那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K 4&#xff0c;L 2的时候&#xff0c;所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大&#xff0c;请你输出…

2019/2/12 Python今日收获

Python day12——025&#xff0c;026字典&#xff1a;当索引不好用时 1.字典&#xff1a;python唯一的一个映射类型。用键值对存储数据&#xff0c;他的标志是大括号。一个键值组合叫一个项。键的类型既可以是字符串类型也可以是整形也可以是浮点型。 如&#xff1a;dict{1:one…

[Leedcode][JAVA][第974题][和可被K整除的子数组][前缀和][HashSet]

【问题描述】[中等] 给定一个整数数组 A&#xff0c;返回其中元素之和可被 K 整除的&#xff08;连续、非空&#xff09;子数组的数目。示例&#xff1a;输入&#xff1a;A [4,5,0,-2,-3,1], K 5 输出&#xff1a;7 解释&#xff1a; 有 7 个子数组满足其元素之和可被 K 5 …