穷举算法是最基本的算法思想,我们通过一个简单的例子来看看穷举算法的应用。鸡兔同笼问题:
今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?
通过分析我们可以知道鸡的数量应该为0~35之间的数。这样,我们可以使用穷举法来逐个判断是否符合,从而搜索答案。
import java.util.Scanner;
public class Solution {
private static int re = 0;
private static int chicken = 0;
private static int rabbit = 0;
public static void solve(int head, int foot) {// 穷举算法
for (int i = 0; i <= head; ++i) {
int j = head - i;
if (i * 2 + j * 4 == foot) {
re = 1;
chicken = i; // chicken代表鸡的个数
rabbit = j; // rabbit代表兔子的个数
}
}
}
public static void main(String[] args) {
int head, foot;
System.out.println("穷举法解决鸡兔同笼问题~");
Scanner scanner = new Scanner(System.in);
System.out.println("请输入头的个数:");
head = scanner.nextInt();
System.out.println("请输入脚的个数:");
foot = scanner.nextInt();
solve(head, foot);
if (re == 1){
System.out.println("鸡的个数为:" + chicken + "只,兔子的个数为:" + rabbit + "只。");
} else {
System.out.println("无解!!");
}
}
}
运行结果
网友评论