古堡算式(福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA)
/*** * 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把 ABCDE 所代表的数字写出来。答案写在“解答.txt”中,不要写在这里!
第一种方法,从10000循环到99999,每个数字进行判断,不太提倡,重点看第二种方法
参考答案:
21978*/
import java.util.ArrayList;import java.util.List;public class 古堡算式 {public static void main(String[] args) {for(int i = 10000;i<99999;i++){if(check(i)){int j = fanzhuan(i); if(j%i==0)System.out.println(i);}}}//判断数字是否符合要求,即5个数字必须不一样private static boolean check(int i) {Listlist = new ArrayList();String s = i+"";list.add(s.charAt(0)+"");for(int j = 1;j<s.length();j++){if(list.contains(s.charAt(j)+"")){return false;}list.add(s.charAt(j)+"");}return true;}//反转数字private static int fanzhuan(int i) {String s = i + "";String ss = "";for(i = 0;i<s.length();i++){ss = s.charAt(i) + ss;}return Integer.parseInt(ss);}}//方法二:用全排列产生的五位数,虽说这种方法代码比较长,并且也难理解。尤其是递归产生五位数,但是效率比第一种方法快
/**
/*** * 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把 ABCDE 所代表的数字写出来。答案写在“解答.txt”中,不要写在这里!参考答案:
21978*/
import java.util.ArrayList;import java.util.List;public class 古堡算式 {public static void main(String[] args) {Listlist = new ArrayList();int n = 5;for (int i = 0; i < n; i++) {// 初始化listlist.add(0);}create(list, n);}// 产生一个五位数,每位数字都不相同private static void create(Listlist, int n) {if (n <= 0) {jisuan(list);return;}for (int i = 1; i <= 9; i++) {if (!list.contains(i)) {list.set(list.size() - n, i);} else {continue;}create(list, n - 1);list.set(list.size() - n, 0);}}// 计算是否符合条件private static void jisuan(Listlist) {if (list.get(4) > list.get(0)) {//产生的数字只有个位比万位大,才有可能符合条件,所以其他情况不用做计算int result = list.get(0) * 10000 + list.get(1) * 1000 + list.get(2)* 100 + list.get(3) * 10 + list.get(4);int b = fanzhuan(result);if (b % result == 0) {System.out.println(result);}}}// 反转数字private static int fanzhuan(int i) {String s = i + "";String ss = "";for (i = 0; i < s.length(); i++) {ss = s.charAt(i) + ss;}return Integer.parseInt(ss);}}
古堡算式(福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA)相关推荐
- 古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA
/** 古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!"华生:&quo ...
- 古堡算式_经典的全排列问题(福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” 华生:“我猜也)
题目描述 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生:&quo ...
- 古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA
古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA (abcde不能重复!) #include <stdio.h> #include < ...
- 古堡算式 福尔摩斯到某古堡探险(嵌套循环)
题目: 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生:" ...
- 福尔摩斯到某古堡探险
福尔摩斯到某古堡探险 描述 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" ...
- 蓝桥杯-福尔摩斯到某古堡探险
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生:"我猜也 ...
- 4、福尔摩斯到某古堡探险
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生:"我猜也 ...
- 在象棋算式中不同的棋子代表不同的数,设计一个算法求这些棋子个代表那些数字(回溯)
如下图的算式 兵 炮 马 卒+ 兵 炮 车 卒=车 卒 马 兵 卒 a b c d e 分别表示 兵 炮 马 卒 车 #include <stdio.h> #include <st ...
- 给定一个字符串计算式,计算结果
面试的一个题,当时只说了算法思路和大概实现步骤,现在我把完整的做出来,嗯嗯嗯,不晓得我这样算不算复杂,欢迎大家来建议,一起讨论讨论 给定一个计算式(包含加减乘除四则运算)字符串,计算结果 算法思想: ...
最新文章
- 【python】lxml处理命名空间
- 【BUG】小米5中 video.js 在钉钉 webview 中全屏后 后退无法弹出虚拟键盘
- Server Error: 0×80070543,无法取得服务器的状态(role 和 features)
- PHP中trait的特性
- 【Lucene4.8教程之五】Luke
- 十年 IT 老兵带你通过案例学架构,附C#代码
- 案例 github_github 项目搜索技巧-让你更高效精准地搜索项目
- OS + macOS Mojave 10.14.4 / sushi / ssh-keygen / ssh-copy-id
- 最详细的equals和hashcode详解
- Q4_一个事物领导另一个
- ORACLE HANDBOOK系列之五:PL/SQL中的集合类型(Collections in PL/SQL)
- Activiti6--入门学习--监听器
- eclipse插件下载最新地址
- pythoneval函数错误_python中eval函数未实现错误
- 栈的push,pop序列
- 鸿蒙系统怎么安装网易云音乐,网易云音乐鸿蒙版 - 魔法系统之家下载
- .NET最有含量的吵架贴
- vue实现头部吸顶描点
- 解决报错: YarnScheduler: Initial job has not accepted any resources
- ARM学习知识整理day1