注册 登录
编程论坛 C++教室

求高手帮忙检查下为什么这个程序运行会发生错误

a656098 发布于 2010-05-08 10:32, 500 次点击
#include <iostream>
using namespace std;
const int _maxbill= 10;
const int _maxmoney =5000;
int a[_maxbill][_maxmoney];
int x[_maxbill];
int exchange(int num, int money){
    int min = 65535, number;
    if(num == 1)    return a[num-1][money]=money;
    else {
        number = money/x[num];
        for(int i = 1; i <= number; i++){
            int remain = money - x[i]*i;
            if(a[i-1][remain]== -1)    return exchange(i-1, remain);
            else min = (min > a[i][remain])? a[i][remain] : min;
        }
        return a[num][money] = min;
    }
}

int main() {
    int n, money;
    for(int i = 0; i<_maxbill; i++ )
        for(int j = 0; j<_maxmoney; i++)
            a[i][j]= -1;
    for(int i = 0; i<_maxbill; i++ )
        x[i] = -1;
    cout<<"请输入钱币的种类数:"<<endl;
    cin>>n;
3 回复
#2
guowei37582010-05-08 15:35
你这个程序是要干啥???
主函数里也没调用exchange函数
#3
lintaoyn2010-05-08 15:48
把完整的代码贴出来。
#4
a6560982010-05-08 19:46
回复 2楼 guowei3758
原题:考虑金钱兑换问题。有一个货币系统,有n种硬币,它们的面值为v1,v2,```,vn.其中v1=1。我们想这样来兑换价值为y的钱,要让硬币的数目最少。更形式地,我们要让下面的量 x1+x2+```+xn  在约束条件 x1v1+x2v2+```+xnvn=y 下极小。其中x1,x2,```,xn是非负整数(xi可能是0)
     设计求解这个问题的动态规划算法


求助高手帮忙!!!
1