神奇的返回值

来源:互联网 发布:dnf商城cd药算法 编辑:程序博客网 时间:2024/06/11 07:58
#include <iostream>#include <vector>using namespace std;int solve_by_brute_force(vector<int> v, int cur, int limit, int sofar, int sum) {/*v:      coin values listcur:    the number coin of current nodelimit:  the total number of coinssofar:  the sum value of current nodesum:    the sum value of total coins*/if (cur == limit) {//the final result after finished all the decisionsint other = sum - sofar;return sofar >= other ? sofar-other : other-sofar;}//choose pick the current value coinint ans1 = solve_by_brute_force(v, cur + 1, limit, sofar + v[cur], sum);int ans2 = solve_by_brute_force(v, cur + 1, limit, sofar, sum);return (ans1 < ans2 ? ans1 : ans2);}int main() {vector<int> v(10);int total = 0;for (int i = 1; i <= 10; i++) {v[i] = i;total += v[i];}cout << solve_by_brute_force(v, 0, 1, 0, total) << endl;return 0;}
ans1 的返回值始终有问题,最后在vs中才发现是vector<int> v 在初始化的时候内存溢出了
原创粉丝点击