1.题目
2.个人递归的理解
递归就是同一个事物不断地重复进入到同一种状态,当达到某种条件时,这种状态就会终止,跳出来。
3.题解
3.1代码解释
3.2代码展示
package 刷题记录;
public class 李白打酒_703 {
static int count = 0;
public static void main(String[] args) {
dfs(0, 0, 2);
System.out.println(count);
}
//dian:表示逢店的数量
//hua:表示遇花的数量
//number:表示酒壶中还剩的数量
static void dfs(int dian , int hua , int number) {
//1.如果逢店大于5或遇花大于10或酒壶没酒了就结束递归
if (dian>5||hua>10||number<0) return;
//2.如果达到要求就count++
//因为题目说明,最后一次是遇花,所以hua==9且number==1
if (dian==5&&hua==9&&number==1) count++;
//3.逢店加一倍
dfs(dian+1, hua, number*2);
//4.遇花喝一斗
dfs(dian, hua+1, number-1);
}
}
4.总结
明白了递归思想就很容易解决了。
5.期望
以上是我与你分享的题目,如果你发现存在的问题或错误,请你指正。谢谢!