一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。求可能的方案总数。
我的方法:
size_t num_solutions = 0; void keepWalking(size_t num_alcohol, size_t num_flowers, size_t num_shops) { if (num_flowers == 1 && num_shops == 0 && num_alcohol == 1){ ++num_solutions; } if (num_flowers != 1){ keepWalking (num_alcohol - 1, num_flowers - 1, num_shops); } if (num_shops != 0){ keepWalking (num_alcohol * 2, num_flowers, num_shops - 1); } }
时间: 2024-10-25 04:55:06