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的程序,但此处的位数和数字的组合暂时未想到办法处理,之后会想办法完善,也想问一下大家有没有什么办法。

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

  • 相关阅读:
    《老男孩》
    java中四种阶乘的计算
    DataOutputStream的乱码问题
    java中飞clone方法
    类反射的简单例子
    PHP: 如何连接oracle数据库进行数据读取
    .NET : 如何读取图片中的元数据信息
    重新审视REST
    PHP 的历史
    Image File Format Specifications {转载}
  • 原文地址:https://www.cnblogs.com/kingmodeyu/p/13183481.html
Copyright © 2011-2022 走看看