zoukankan      html  css  js  c++  java
  • 吸血鬼数字的另类解法

     在阅读java编程思想时,无意看到了这个题目,感觉很有意思,就写了如下的程序来运行,

    public static void main(String[] args) {
    
           try {
               int count = 9999;
               long beginTime = System.currentTimeMillis();
               while(count >1000){
                    if(count%100 != 0){
                        String num = count+"";
                        String[] strArr = new String[4];
                        strArr[0] = num.substring(0,1);
                        strArr[1] = num.substring(1,2);
                        strArr[2] = num.substring(2,3);
                        strArr[3] = num.substring(3,4);
                        //循环判断,i为不固定位所在位
                        for (int i = 0; i < 3; i++) {
                            String m = "",n = "";
                            boolean k = false;
                            //根据首位为0不变和不固定位i确定其余两位
                            for (int j = 1; j < 4; j++) {
                               if(j!=0 && j != i+1){
                                   if(k){
                                       n = strArr[j];
                                   }else{
                                       m = strArr[j];
                                       k = true;
                                   }
    
                                }
                            }
                            //System.out.println("m"+m+",n"+n);
                            //循环判断即可
                            if(Integer.parseInt(strArr[0]+strArr[i+1]) * Integer.parseInt(m+n) == count ){
                                System.out.println(strArr[0]+strArr[i+1] + "*" + m + n + "=" + count);
                            }else if(Integer.parseInt(strArr[0]+strArr[i+1]) * Integer.parseInt(n+m) == count ){
                                System.out.println(strArr[0]+strArr[i+1] + "*" + n + m + "=" + count);
                            }else if(Integer.parseInt(strArr[i+1]+strArr[0]) * Integer.parseInt(m+n) == count ){
                                System.out.println(strArr[i+1]+strArr[0] + "*" + m + n + "=" + count);
                            }else if(Integer.parseInt(strArr[i+1]+strArr[0]) * Integer.parseInt(n+m) == count ){
                                System.out.println(strArr[i+1]+strArr[0] + "*" + n + m + "=" + count);
                            }
                            }
    
                        }
                    count --;
                }
               long endTime = System.currentTimeMillis();
               long timeDif = endTime - beginTime;
               System.out.println("程序运行时间为"+timeDif);
    
           } catch (Exception e) {
                e.printStackTrace();
            }
        }

    在写之前也看了一些博客,但主要是我刚看到这个的时候就是想先确定数字,然后确定每一位,和有些博客先试能不能满足的方法不太一样。还有一点就是,我想这个数字肯定不会就只有4位,本来是想写一个可以任意指定count的程序,但此处的位数和数字的组合暂时未想到办法处理,之后会想办法完善,也想问一下大家有没有什么办法。

    最后,程序运行结果如下:

  • 相关阅读:
    有些事情,我们需要坚持到底
    SEO策略与细节:细节决定成败
    织梦DEDECMS更新6月7日补丁后出现版权链接的删除办法
    argparse模块的应用
    多态实现原理剖析
    tensorflow中tf.ConfigProto()用法解释
    tensor flow中summary用法总结
    tensorflow-gpu版本出现libcublas.so.8.0:cannot open shared object file
    python3自带工具2to3.py用法
    公司管理系统之设计
  • 原文地址:https://www.cnblogs.com/kingmodeyu/p/13183481.html
Copyright © 2011-2022 走看看