1.6 穷举法 的java应用

 1.百钱白鸡

 1 for(int gj =0;gj<=100;gj++)
 2         {
 3             for(int mj =0;mj<=100;mj++)
 4             {
 5                 for(int cj = 0;cj<=300;cj++)
 6                 {
 7                     if((gj+mj+cj==100)&&(5*gj+3*mj+cj/3.0)==100)
 8                     {
 9                         System.out.println("gj="+gj+"mj="+mj+"cj="+cj);
10                     }
11
12                 }
13             }

gj=0mj=25cj=75
gj=4mj=18cj=78
gj=8mj=11cj=81
gj=12mj=4cj=84


2. 水仙花数

 1 for(int bw =1;bw<=9;bw++)
 2                 {
 3                     for(int sw=0;sw<=9;sw++)
 4                     {
 5                         for(int gw=0;gw<=9;gw++)
 6
 7                         {
 8                             if((bw*bw*bw+sw*sw*sw+gw*gw*gw)==(bw*100+sw*10+gw*1))
 9                             {
10                                 System.out.println(bw*100+sw*10+gw*1);
11                             }
12                         }
13                     }

153
370
371
407

3.百马百担

 1 // TODO 自动生成的方法存根
 2         for(int dma=0;dma<=100;dma++)
 3         {
 4             for(int zma=0;zma<=100;zma++)
 5             {
 6
 7                 for(int xma=0;xma<=200;xma++)
 8                 {
 9                     if(((dma+zma+xma)==100)&&(3*dma+2*zma+xma/2.0)==100)
10                     {
11                         System.out.println("大马数是"+dma+"\t中马数是"+zma+"\t小马数是"+xma);
12                     }
13                 }

大马数是2 中马数是30 小马数是68
大马数是5 中马数是25 小马数是70
大马数是8 中马数是20 小马数是72
大马数是11 中马数是15 小马数是74
大马数是14 中马数是10 小马数是76
大马数是17 中马数是5 小马数是78
大马数是20 中马数是0 小马数是80

时间: 2025-01-06 06:33:37

1.6 穷举法 的java应用的相关文章

OpenJudge 4146:数字方格 java穷举法

首先是题目描述: 描述   如上图,有3个方格,每个方格里面都有一个整数a1,a2,a3.已知0<=a1,a2,a3<=n,而且a1+a2是2的倍数,a2+a3是3的倍数,a1+a2+a3是5的倍数.你的任务是找到一组a1,a2,a3,使得a1+a2+a3最大. 输入 一行,包含一个整数n (0<=n<=100). 输出 一个整数,即a1+a2+a3的最大值. 样例输入 3 样例输出 5 接下来是我的解法: 刚接触这道题的时候,我首先想到的是穷举法,具体代码如下: import j

JAVA数硬币之穷举法以及在循环前可以放一个标号来标志循环

注:continue 和break 只对当前循环起作用 但是带标号的continue 和break 对标号的循环起作用 public class 凑硬币_穷举法 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int amount = in.nextInt(); FLAG: for(int one = 0;one<=

HDU 1017 A Mathematical Curiosity【看懂题意+穷举法】

//2014.10.17    01:19 //题意: //先输入一个数N,然后分块输入,每块输入每次2个数,n,m,直到n,m同一时候为零时 //结束,当a和b满足题目要求时那么这对a和b就是一组 //注意: //每一块的输出中间有一个回车 A Mathematical Curiosity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s)

HDU 1407 测试你是否和LTC水平一样高【穷举法】

/* 解题思路:暴力求解 难点详解:注意每个数都没有超过num 关键点:穷举法 解题人:lingnichong 解题时间:2014-08-28 10:56:15 解题体会:第一次使用goto语句,感觉goto语句还是有点实用的价值的 */ 测试你是否和LTC水平一样高 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 12878    A

C#跳转语句 迭代法 穷举法

一.跳转语句 break & continue break:跳出循环,终止此循环,不管下面还有多少次,全部跳过. string a=" ", for (int i=1;i<=10;I++) { if(i==5) { break; } a += i +",": } Console.WriteLine(a); 输出结果为 1,2,3,4,5 continue:终止此次循环,直接开始下次循环. string a=" ", for (int

什么叫穷举法?

穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕.若某个情况验证符合题目的全部条件,则为本问题的一个解:若全部情况验证后都不符合题目的全部条件,则本题无解.穷举法也称为枚举法. 用穷举法解题时,就是按照某种方式列举问题答案的过程.针对问题的数据类型而言,常用的列举方法一有如下三种: (1)顺序列举 是指答案范围内的各种情况很容易与自然数对应甚至就是自然数,可以按自然数的变化顺序去列举. (2)排列列举 有时答案的数据形式是一组数的

15-07-03 语句- for () 循环语句-穷举法

for()  穷举法 用循环把各种可能的情况都走一遍,然后用if条件把满足要求的结果给筛选出来. 例如:1.找100以内的偶数 for (int i = 0; i <= 100; i++) { if (i % 2 == 0) { Console.WriteLine(i); } } 2.小明单位发了50元的购物卡,他到超市买洗化用品,一是牙刷(5元),二是香皂(2元),三是牙膏(10元)怎么可以正好把五十元花完. for (int ys = 0; ys <= 10; ys++) { for (i

for循环的应用:迭代法和穷举法

for()循环.四要素:初始条件,循环条件,状态改变,循环体.执行过程:初始条件--循环条件--循环体--状态改变--循环条件....注意:for的小括号里面分号隔开,for的小括号后不要加分号.for的嵌套.应用:迭代法,穷举法.一.迭代法:有一定规律. 每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备. 二.穷举法:用循环把各种可能的情况都给走一遍,然后用if条件把满足要求的结果给筛选出来.

穷举法

穷举法是一种用来暴力破解某些数字组合时候用到的一种方法. 实际应用呢,例如:列举一个三位数,是11的倍数,且个位.十位.百位不相等. 代码: #include<iostream> using namespace std; int main() { int i; cout<<"11的倍数,且个位十位百位不相等:"<<endl; for (i=100; i<1000; i++) { //个位 int g = i%10; //十位 int s = i