题目出处:https://www.luogu.com.cn/problem/P1618

思路:
从结果入手
先在123—987中找到满足A:B:C的三个数
再判断三个数的各个数字是否有重复的
package violence;import java.util.Scanner;//从结果入手
public class P1618 {static Scanner sc;static boolean isFound = false;// 初始设为没找到static int A;static int B;static int C;public static void main(String[] args) {sc = new Scanner(System.in);A = sc.nextInt();B = sc.nextInt();C = sc.nextInt();int a, b, c;// 123~987/** 从a开始遍历:不包括零,不能有重复的数字* */for (a = 123; a <= 987; a++) {// a肯定能被A整除if (a % A == 0) {// 不包含零且没有数字重复if (!isContZero(a) && !isRepeated(a)) {// 求出b,因为是int型,所以肯定是整数b = a / A * B;if (isBetween(b) && !isContZero(b) && !isRepeated(b)) {c = a / A * C;if (isBetween(c) && !isContZero(c) && !isRepeated(c)) {// 判断a,b,c各个数字是否重复,如果没有重复if (!isAllUsed(a, b, c)) {//先将isFound置为true说明找到isFound = true;System.out.printf("%d %d %d",a,b,c);System.out.println();}}}}}}//循环完毕//没找到才输出if (!isFound) {System.out.println("No!!!");}}// 判断是否包含零// 包含返回true,不包含返回falsepublic static boolean isContZero(int beJudged) {return String.valueOf(beJudged).contains("0");}// 判断是否有数字重复// 包含返回true,不包含返回falsepublic static boolean isRepeated(int beJudged) {int bai = beJudged / 100;int shi = (beJudged - bai * 100) / 10;int ge = (beJudged - bai * 100 - shi * 10);if (bai == shi || shi == ge || ge == bai) {return true;}return false;}// 判断是否在123~987之间// 包含返回true,不包含返回falsepublic static boolean isBetween(int beJudged) {if (beJudged >= 123 && beJudged <= 987) {return true;}return false;}// 判断三个数字的各个位数是否有相等的// 有则返回true,没有则返回falsepublic static boolean isAllUsed(int a, int b, int c) {boolean[] isUsed = new boolean[9];int aArr[] = GSB(a);int bArr[] = GSB(b);int cArr[] = GSB(c);// a的各位数,int age = aArr[0];int ashi = aArr[1];int abai = aArr[2];// b的各位数int bge = bArr[0];int bshi = bArr[1];int bbai = bArr[2];// c的各位数int cge = cArr[0];int cshi = cArr[1];int cbai = cArr[2];// 先将a相应位置记为trueisUsed[age-1] = true;isUsed[ashi-1] = true;isUsed[abai-1] = true;// 当b的各位数对应数字都没被使用过时if (isUsed[bge-1] == false && isUsed[bshi-1] == false && isUsed[bbai-1] == false) {// 如果b对应数字都没被访问过,先将b个数字对应位置置为trueisUsed[bge-1] = true;isUsed[bshi-1] = true;isUsed[bbai-1] = true;// 再判断c,当c的各位数对应数字都没被使用过时if (isUsed[cge-1] == false && isUsed[cshi-1] == false && isUsed[cbai-1] == false) {//说明a,b,c满足条件return false;} else {// 说明c有数字被使用过,返回truereturn true;}} else {// 说明b有数字被使用过,返回truereturn true;}}// 返回个位十位百位public static int[] GSB(int beJudged) {int bai = beJudged / 100;int shi = (beJudged - bai * 100) / 10;int ge = (beJudged - bai * 100 - shi * 10);int arr[] = { ge, shi, bai };return arr;}
}

洛谷P1618 Java解法相关推荐

  1. 洛谷P2678 Java解法

    题目出处点这里 思路: 形如求最小值的最大值以及求最大值的最小值都可以二分求解. 就像这道题,求最短的跳跃距离尽可能长(就是求最小值的最大值),注意到跳跃距离肯定在1至L之间,于是问题就变为在1~L之 ...

  2. 洛谷P2298 Java解法

    题目出处点这里 很明显又是广搜模板题 代码: package search;import java.awt.Point; import java.util.LinkedList; import jav ...

  3. 洛谷P2404 Java解法

    题目出处 思路:肯定打表啊! 用一个数组arr[]存储每次拆分的结果,满足条件就输出,不断再原来数组基础上进行搜索即可,不过要注意输出的数是从小到大的,因此我们可以用一个变量zz记录每次存进arr[] ...

  4. 洛谷 P1618 STL全排列方法

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

  5. P1164 小A点菜(DP动态规划,洛谷,java)

    洛谷链接:https://www.luogu.org/problem/P1164 i写成了j,改了nnnnn久!!!! import java.util.Scanner; class Main{pub ...

  6. P1002 过河卒(dp动态规划,洛谷,java)

    洛谷链接:https://www.luogu.com.cn/problem/P1002 import java.util.Scanner;public class Main { public stat ...

  7. P2392 kkksc03考前临时抱佛脚(洛谷)JAVA

    题目背景 kkksc03 的大学生活非常的颓废,平时根本不学习.但是,临近期末考试,他必须要开始抱佛脚,以求不挂科. 题目描述 这次期末考试,kkksc03 需要考 4 科.因此要开始刷习题集,每科都 ...

  8. P1042 乒乓球(模拟,字符串,不指定输入,洛谷,java)

    洛谷链接:https://www.luogu.com.cn/problem/P1042 借鉴链接:https://blog.csdn.net/a1439775520/article/details/9 ...

  9. P1506 拯救oibh总部(dfs,洛谷,java)

    洛谷链接:https://www.luogu.com.cn/problem/P1506 import java.util.Scanner; public class Main {static int ...

最新文章

  1. hdu 1163 ( 求n^n位根)
  2. js使字体最大且不超过文本框
  3. python正则_Python基础12之Python正则
  4. Game with Telephone Numbers
  5. XML——XML Schema
  6. Windows下RMAN备份脚本
  7. 每日一题(43)—— 数组越界
  8. No toolchains found in the NDK toolchains folder for ABI with prefix: mips64
  9. python全自动化渗透工具_Python自动化渗透(一)
  10. 易语言组合框基本属性方法事件
  11. Oxygen XML Editor(XML编辑器)中文版
  12. mysql basemapper_BaseMapper和继承
  13. 比伯女友首谈私生子事件 挺男友:事实胜于诡辩
  14. 《论文阅读》Knowledge-Enriched Transformer for Emotion Detection in Textual Conversations
  15. 示波器探头校准-调节补偿电容
  16. 苹果新规,微信面临下架?一文看懂苹果与腾讯“相亲相爱相杀”
  17. HSL和HSLA颜色
  18. Multiple Object Tracking with Mixture Density Networks for Trajectory Estimation 详细解读
  19. 手把手教您快速搭建壁纸网站
  20. 【NLP模型笔记】Intro || Word2vec词向量模型

热门文章

  1. (转)PC机使用网络调试助手获取onenet的数据(https://blog.csdn.net/qq_29219435/article/details/78480872)
  2. 计算机转机械硬盘,机械硬盘空闲时却还狂转,到底为什么?
  3. Windows Server 2012中修改光驱盘符
  4. PHP打印调用堆栈的三种方法
  5. 解决办法:E: 仓库 “......” 没有 Release 文件。
  6. 计算机前沿技术云论文,计算机前沿技术论文.doc
  7. 熊市定投,牛市才有收获
  8. 重学前端第一阶段完 钢琴项目(document.querySelector js改变css样式的3种方式 思路 成品)
  9. pythonreader下载_使用Python的pandas-datareader包下载雅虎财经股价数据
  10. 微信小程序(第十九章)- 用户评价页面实现