zoukankan      html  css  js  c++  java
  • 穷举法例子

      


    自动生成的方法存根
            我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的:
      5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,
      那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现 1publicclass Test_5 {

     1 public class Test_5 {
     2     public static void main(String[] args) {
     3         for (int gj = 0; gj <= 20; gj++) {// 公鸡5文一只,百钱可最多买20只
     4             for (int mj = 0; mj <= 33; mj++) {// 母鸡3文一只,百钱可最多买33只
     5                 for (int cj = 0; cj <= 100; cj++) {// 雏鸡1文三只,百钱可最多买300只
     6                     if (gj * 5 + mj * 3 + cj / 3 == 100 && gj + mj + cj == 100 && cj % 3 == 0) {// (买公鸡钱数+母鸡钱数+雏鸡钱数==100)
     7                         // &&(公鸡个数+母鸡个数+3倍的雏鸡个数==100) 和雏鸡是3 的倍数
     8                         System.out.println("公鸡" + gj + "母鸡" + mj + "雏鸡" + cj);
     9                     }
    10                 }
    11             }
    12         }
    13     }
    14 }

    水仙花数

    找出100——999种所有的水仙花数。
    分析:水仙花数是指:一个三位数,其各位数字立方和等于该数本身。例如:370=33+73+00.这就说明370是一个水仙花数。

    例如 153=1*1*1+5*5*5+3*3*3
    所以要判断一个三位数是不是水仙花数,得先取得这个三位数的的个位,十位和百位。这里我由一下几种方法:

     1 public class Test_6 {
     2     public static void f() {
     3         for (int i = 1; i < 10; i++) {
     4             for (int j = 0; j < 10; j++) {
     5                 for (int k = 0; k < 10; k++) {
     6                     if (i * i * i + j * j * j + k * k * k == i * 100 + j * 10 + k) {
     7                         System.out.println(i * 100 + j * 10 + k);
     8                     }
     9                 }
    10             }
    11         }
    12     }
    13 
    14     public static void f2() {
    15         int a = 0, b = 0, c = 0;
    16 
    17         for (int j = 100; j < 1000; j++) {
    18             a = j / 100; // 获得百位
    19             b = j % 100 / 10; // 获得十位
    20             c = j % 10; // 获得个位
    21             if (j == a * a * a + b * b * b + c * c * c)
    22                 System.out.println(j);
    23         }
    24     }
    25 
    26     public static void main(String[] args) {
    27         f();
    28         f2();
    29     }
    30 }

     百马百担
    有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮一担,问有大,中,小各多少匹马?

    解析:其实跟百钱买百鸡一样的

    public class Test_7 {
        public static void print() {
            for (int d = 1; d <= 100; d++) {
                for (int z = 1; z <= 100; z++) {
                    for (int x = 1; x <= 200; x++) {
                        if (d * 3 + z * 2 + x / 2 == 100 && d + z + x == 100 && x % 2 == 0) {
                            System.out.println("大马:" + d + " 中马:" + z + " 小马:" + x);
                        }
                    }
                }
            }
        }
    
        public static void main(String[] args) {
            print();
        }
    }

  • 相关阅读:
    GC原理知多少
    C# 编译运行原理
    NetCore无需添加web/wcf引用来调用webservice
    WPF基础知识-资源概述
    WPF基础知识-XAML概述
    WPF入门-使用C#创建简单应用
    WPF概述
    Entity Framework Core
    Entity Framework Core
    Entity Framework Core
  • 原文地址:https://www.cnblogs.com/limn/p/6533790.html
Copyright © 2011-2022 走看看