📅  最后修改于: 2023-12-03 14:56:31.014000             🧑  作者: Mango
这是一个Java程序,用于实现硬币找零的功能。该程序可以接受一个输入金额,并计算出最少需要多少个面值不同的硬币来找零。这个程序使用了贪心算法来实现。
贪心算法是一种解决优化问题的算法。它可以在多项式时间内解决问题,但不保证得到最优解。贪心算法采取将问题分解成若干个子问题,对每个子问题进行优化。对于每个子问题,求出一个最优解,然后将所有子问题的最优解组合成原问题的最优解。
硬币找零问题可以使用贪心算法来解决。其贪心策略是:优先使用面值最大的硬币找零,直到找零金额为0。
下面是该程序的Java代码实现:
import java.util.Scanner;
public class CoinChange {
public static void main(String[] args) {
int[] coins = {50, 20, 10, 5, 1};
Scanner scanner = new Scanner(System.in);
System.out.println("请输入金额:");
int amount = scanner.nextInt();
int coinCount = 0;
for (int i = 0; i < coins.length; i++) {
while (amount >= coins[i]) {
amount -= coins[i];
coinCount++;
}
}
System.out.println("最少需要" + coinCount + "个不同面值的硬币来找零。");
}
}
在这个程序中,硬币的面值存储在一个整型数组中。输入金额的代码使用了Java的Scanner类来实现。然后,程序使用一个for循环遍历硬币面值数组,对每个硬币面值使用while循环,直到找零金额为0为止。在while循环中,每找到一个硬币,就将找零金额和硬币数量更新。最后输出硬币数量即为答案。
# 硬币找零的Java程序
这是一个Java程序,用于实现硬币找零的功能。该程序可以接受一个输入金额,并计算出最少需要多少个面值不同的硬币来找零。这个程序使用了贪心算法来实现。
## 贪心算法
贪心算法是一种解决优化问题的算法。它可以在多项式时间内解决问题,但不保证得到最优解。贪心算法采取将问题分解成若干个子问题,对每个子问题进行优化。对于每个子问题,求出一个最优解,然后将所有子问题的最优解组合成原问题的最优解。
硬币找零问题可以使用贪心算法来解决。其贪心策略是:优先使用面值最大的硬币找零,直到找零金额为0。
## Java代码实现
下面是该程序的Java代码实现:
```java
import java.util.Scanner;
public class CoinChange {
public static void main(String[] args) {
int[] coins = {50, 20, 10, 5, 1};
Scanner scanner = new Scanner(System.in);
System.out.println("请输入金额:");
int amount = scanner.nextInt();
int coinCount = 0;
for (int i = 0; i < coins.length; i++) {
while (amount >= coins[i]) {
amount -= coins[i];
coinCount++;
}
}
System.out.println("最少需要" + coinCount + "个不同面值的硬币来找零。");
}
}
在这个程序中,硬币的面值存储在一个整型数组中。输入金额的代码使用了Java的Scanner类来实现。然后,程序使用一个for循环遍历硬币面值数组,对每个硬币面值使用while循环,直到找零金额为0为止。在while循环中,每找到一个硬币,就将找零金额和硬币数量更新。最后输出硬币数量即为答案。