编辑

【暴力】007 古堡算式(Set)

2019-11-15 2019-11-29 52 2 ---【暴力破解】 PAN先森

一、题目描述

福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA,他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” 华生:“我猜也是!”,于是,两人沉默了好久,还是没有算出合适的结果来。 请你利用计算机的优势,找到破解的答案。把ABCDE所代表的数字写出来。

二、做法

(1)暴力破解(set)

(1)题目描述

  • ABCDE代表不同的数字,问号也代表某个数字

(2)功能抽取

  • 取最高位:i/10000,例如:99989/10000=9
  • 取第二位:(i/1000)%10,例如:(99989/1000)%10=99%10=9
  • 取第三位:(i/100)%100,例如:(99989/100)%100=999%100=9
  • 取第四位:(i/10)%10,例如:(99989/10)%10=9998%10=8
  • 取第五位:i%10,例如(99989%10=9),也是最后一位的取法.
import java.util.HashSet;
import java.util.Set;
/**
 * @Author: Hoji
 * @Date: 11/14/2019 7:13 PM
 */
public class 古堡算式 {
  public static void main(String[] args) {
    int a=0,b=0,c=0,d=0,e=0, sum=0, cnt = 0;
    for (int i = 10000; i <= 99999; i++) {
      a = i / 10000;        //a:最高位
      b = (i / 1000) % 10;  //b:第二位
      c = (i / 100) % 10;   //c:第三维
      d = (i / 10) % 10;    //d:第四位
      e = i % 10;           //e:第五位
      Set<Integer> set = new HashSet<>();
      set.add(a);set.add(b);set.add(c);set.add(d);set.add(e);
      if(set.size() == 5)
      for (int j = 1; j < 10; j++)
      if ( e*10000+d*1000+c*100+b*10+a == i * j)
      System.out.println(i);
    }
  }
}

Hoji的CSDN(在这里随意任性地创作,一首诗、一幅画、一篇文章.... 在这里你可以get到但不仅限算法、Spring, SpringBoot等后端技术、MySql,Oracle数据库探索....,其中更不乏各种框架教程、学习方法..)
博客地址:https://blog.csdn.net/qq_43539599

倘若小文于你有益,欢迎
  • 如果您的提问博主没能及时回复,通过分享文章获得援助,何尝不是一种查缺补漏的好做法
  • 版权声明:本文为博主原创文章,遵循CC 4.0 BY版权协议
  • 文章转载:请在文末添加原文章地址,这也是尊重他人劳动成果的一点体现,谢谢您的配合!
  • 评论信息 (注:评论收到回复后,会以邮箱的方式提醒您;您的邮箱不会显示到页面中)

    验证码信息 看不清?点击图片进行切换!
    精彩随处可见 更多精彩内容
    作者: 浏览 61 评论 1 赞 1 2020-01-15
    作者: 浏览 62 评论 1 赞 1 2019-11-29
    作者: 浏览 83 评论 1 赞 1 2019-11-29
    作者: 浏览 54 评论 1 赞 1 2019-11-29
    作者: 浏览 52 评论 1 赞 1 2019-11-29
    目录