回复 7楼 beyondyf
您好!
打扰您一下,关于这段代码,您提到“通过调整宏参数可以改变问题范围”,应该是指的是可以改变酒瓶的数量,从而求解更广泛的问题吧?
我将宏定义
#define BOTTLE_COUNT 3
#define BOTTLE_CAPACITIES {12, 8, 5}
以及main函数里面的此行
n = search(merge((int []){12, 0, 0}), merge((int []){6, 6, 0}), path);
改为:
#define BOTTLE_COUNT 4
#define BOTTLE_CAPACITIES {12, 10, 6,3}
以及main函数里面的此行
n = search(merge((int []){12, 0, 0, 0}), merge((int []){4, 4, 4, 0}), path);
确实出了结果。
但如果把酒瓶数改到5,程序就无法正常运行,不知是怎么回事,是我改的方法不对吗?
我是个菜鸟,懂得很少,请大神指点迷津
。