zoukankan      html  css  js  c++  java
  • 暴力破解

    计算机的优势: 计算速度

    最笨的计算方法:

    • 直接枚举每种可能的情况
    • 情况属不是天文数字即可
    • 要做到不遗漏
    • 最好能不重复

    实例:

    1.鸡兔同笼

    鸡兔共有50头,脚120只,问鸡兔各自的数量

    public static void main(String[] args) {
            int headNum = 50;   //头的总数
            int footNum = 120;  //脚的总数
            for (int i = 0; i < headNum; ++i)
            {
                int j = headNum - i;
                if (2 * i + 4 * j == footNum)
                {
                    System.out.println("鸡有"+i+"只,兔有" + j + "只");        
                }
            }

    2.韩信点兵

    部队人数大约有1000多人,不到2000,采用报数的方式,得到以下结果:

    5人一组余1人, 7人一组余2人,8人一组余3人,求部队实际人数

    public static void main(String[] args) {
            for (int i = 1000; i < 2000; ++i) {
                if (i % 5 == 1 && i % 7 == 2 && i % 8 == 3) {
                    System.out.println("总人数:" + i);
                }
            }
        }

    3.马与瓦

    总共有 100 匹马,总共驮有 100 块瓦(古代的瓦,很大,很重)

    每匹大马每次能驮 3 块瓦,每匹小马每次能驮 2 块瓦,小马驹每次 2个马驹驮 1块瓦

    求各种马的数目

    public static void main(String[] args) {
            int tiles = 100; // 瓦片数目
            int horses = 100; // 马数量总和
            for (int big = 0; big <= tiles / 3; ++big) {
                for (int mid = 0; mid <= tiles / 2; ++mid) {
                    int small = horses - big - mid;
                    if (small % 2 == 0 && big * 3 + mid * 2 + small / 2 == tiles) {
                        System.out.println("各种马的数目: 大马: " + big + ", 小马: " + mid
                                + ", 小马驹: " + small);
                    }
                }
            }
        }

    效果:

  • 相关阅读:
    阿里的GCIH技术
    java栈
    hotsport jvm后台线程包括哪些
    java运行时数据区
    java双亲委派
    获取类加载器方式
    用户自定义类加载器(java防止反编译)
    JSP-07-使用JavaBean封装数据
    JSP-06-使用JDBC操作数据库
    InstallShield 下载安装
  • 原文地址:https://www.cnblogs.com/hupeng1234/p/6818678.html
Copyright © 2011-2022 走看看