/** 古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把 ABCDE 所代表的数字写出来。答案写在“解答.txt”中,不要写在这里!*/
public class TDemo02_two {public static void main(String[] args){for(int i=10000;i<100000;i++){int a = i/10000;int b = i%10000/1000;int c = i%10000%1000/100;int d = i%10000%1000%100/10;int e = i%10;if(a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e){continue;}int y = e*10000+d*1000+c*100+b*10+a;if(y%i==0){System.out.println(i+"*"+y/i+"="+y);}}}
}

运行结果:

21978*4=87912

方法二:

/** 古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把 ABCDE 所代表的数字写出来。答案写在“解答.txt”中,不要写在这里!*/
public class Demo02 {// 检查是否是全111111...public static boolean check(int[] b){boolean flag = true;for(int i=0;i<b.length;i++){if(b[i]==0){flag = false;break;}}return flag;}// 检查是否是一个五位数public static boolean checkFive(int[] b){boolean flag = false;int count = 0;for(int i=0;i<b.length;i++){if(b[i]==1){count++;}}if(count==5) flag = true;return flag;}// 得到一个五位数字public static String values(int[] b){StringBuffer sb = new StringBuffer();for(int i=0;i<b.length;i++){if(b[i]!=0){sb.append(i);}}return sb.toString();}// 反转 npublic static int reverse(int n){StringBuffer sb = new StringBuffer();sb.append(n);sb.reverse();return Integer.parseInt(sb.toString());}// 进位得到下一个数字public static void modify(int[] b){b[b.length-1]++;for(int i=b.length-1;i>0;i--){if(b[i]>1){b[i] = 0;b[i-1]++;}}}public static void calc(String s){int n = Integer.parseInt(s);  // 得到一个五位数字int r = reverse(n); // 反转 nif(r%n==0) // 得到结果 n * ? = rSystem.out.println(n+"*"+(r/n)+"="+r);}public static void allSort(char[] c,int start,int end){char temp = 0;if(start==end){String s = new String(c);if((s.charAt(0)-'0')!=0){calc(s); // 计算结果}}else{for(int i=start;i<=end;i++){temp = c[start];c[start] = c[i];c[i] = temp;allSort(c,start+1,end);temp = c[start];c[start] = c[i];c[i] = temp;}}}public static void f(int[] b){for(;;){if(check(b)) break; // 检查是否是全111111...modify(b);    // 进位,进行下一个数字的测试if(!checkFive(b)) continue; // 检查是否是一个五位数字String s =  values(b);       // 得到一个五位数字char[] c = s.toCharArray();allSort(c,0,c.length-1); // 全排列其中一个五位数,并计算结果}}public static void main(String[] args){int[] b = new int[10];f(b);}
}

运行结果:

21978*4=87912

古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA相关推荐

  1. 古堡算式(福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA)

    /*** * 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!"华生:" ...

  2. 古堡算式_经典的全排列问题(福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” 华生:“我猜也)

    题目描述 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生:&quo ...

  3. 古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA

    古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA (abcde不能重复!) #include <stdio.h> #include < ...

  4. 古堡算式 福尔摩斯到某古堡探险(嵌套循环)

    题目: 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生:" ...

  5. 福尔摩斯到某古堡探险

    福尔摩斯到某古堡探险 描述 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" ...

  6. 蓝桥杯-福尔摩斯到某古堡探险

    福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生:"我猜也 ...

  7. 4、福尔摩斯到某古堡探险

    福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生:"我猜也 ...

  8. 在象棋算式中不同的棋子代表不同的数,设计一个算法求这些棋子个代表那些数字(回溯)

    如下图的算式 兵 炮 马 卒+ 兵 炮 车 卒=车 卒 马 兵 卒 a b c d e  分别表示 兵 炮 马 卒 车 #include <stdio.h> #include <st ...

  9. 给定一个字符串计算式,计算结果

    面试的一个题,当时只说了算法思路和大概实现步骤,现在我把完整的做出来,嗯嗯嗯,不晓得我这样算不算复杂,欢迎大家来建议,一起讨论讨论 给定一个计算式(包含加减乘除四则运算)字符串,计算结果 算法思想: ...

最新文章

  1. 网站截图工具EyeWitness
  2. gateway动态路由_spring-cloud-gateway简介
  3. word2007中如何隐藏工具栏
  4. Ubuntu 安装调整工具移动 Launcher 启动器位置
  5. 【正则表达式】IPv4地址的正则匹配
  6. Android开发笔记(七十八)异常容错处理
  7. 使用ISA Server 2006发布Exchange Server 2007安全的Web、安全的OWA和Outlook Anyw
  8. .net 根据银行卡获取银行信息
  9. windows10小白第一次装,严格参考教程(转)
  10. 数位板驱动(手绘板驱动),wintab 8192级压感,TabletDriver通用, 支持windows, mac系统
  11. 贝叶斯自举法(BayesianBootstrap)简介
  12. 二战三跨考生的血与泪,交大电通两年记录
  13. 机器学习系列-- 异常检测(Anomaly Detection)
  14. 【FlashDB】第二步 FlashDB 移植 STM32L475 使用QSPI驱动外部 flash W25Q64之 SFUD 移植
  15. 工作中遭遇的问题及解决办法
  16. Android 获取ROOT权限原理介绍和签名验证原理及反编译学习
  17. CPU时钟周期和时钟频率
  18. python水果超市管理系统_项目1-水果超市管理系统-学生
  19. SAP ABAP BP MDS_CTRL_STRATEGY=============CP PPO PPO 处于非活动状态。激活 PPO 指令创建以避免转储。要激活 PPO,请维护
  20. Flutter实战之坑——按返回键回到手机桌面不退出app

热门文章

  1. (附源码)计算机毕业设计ssm动漫网站
  2. SAP ETL开发规范
  3. 小议JAVA数据类型间的相互转换
  4. 中国各省人口,面积排名
  5. 最新阿里巴巴职位层级以及薪资结构分析出来了,你在阿里是什么层次的水平?
  6. 【我的成长之路——英语】——good luck charlie
  7. MySQL-日志、备份与恢复
  8. A. Closing The Gap
  9. 人工智能的45篇论文
  10. Python 设置机器码验证