求一共有多少种方式系列问题(找零钱问题)
背景:
假设有四种面额的钱币
1 元、2 元、5 元和 10 元,一共给我 10 元
那您可以奖赏我 1 张 10 元,或者 10 张 1 元
或者 5 张 1 元外加 1 张 5 元等等
如果考虑每次奖赏的金额和先后顺序
那么最终 一共有多少种不同的奖赏方式呢?
看到了一个这样的问题,想用java代码解决一下
本方案用到了递归的方式计算
下面用java代码做了个实现
考虑每次奖赏的金额和先后顺序
public class allprobability {
public static void main(string [] args){
//设置数额
int a = 10;
get(a,"");
system.out.println("over");
}
private static int m = 0;
/**
* 计算后面可能发生的概率
* @param num 剩余
* @param s 缓冲字符串
*/
private static void get(int num ,string s){
//0 直接输出
if(num == 0) system.out.println("第"+(++m)+"种方法"+s);
//1
if(num>=1){ <