int main(int argc, char *argv[]) {
long m,n; cin>>m>>n;
  cout<      return 0;  }    8. 考虑下面的货币兑付问题:在面值为(v1, v2, ?, vn)的n种货币中,需要支付y值的货币,应如何支付才能使货币支付的张数最少,即满足 nn?xvi?1ii?y,且使?xi最小(xi是 i?1非负整数)。设计动态规划算法求解货币兑付问题,并分析时间性能和空间性能。    #include int a[N][M]; int value[M];  using namespace std;   int main() {      while(true)     {        int i,j,k;       int x,y,z;             cout<<\输入货币种类的个数:\      cin>>x;         cout<<\从小到大输入货币的价值,其中第一个必须为一:\       for(i=1;i<=x;i++)//x为货币种类的个数     {          cout<<\        cin>>y;         value[i]=y;     }         cout<<\输入要兑换的钱的价值:\        cin>>z;//z为钱        for(j=0;j<=z;j++)         a[j][0]=0;             for(k=0;k<=x;k++)          a[0][k]=0;        for(i=1;i<=z;i++)     {          for(j=1;j<=x;j++)         {              if(value[j]==i)                 a[i][j]=1;             else if(value[j]>i)                 a[i][j]=a[i][j-1];             else                  a[i][j]=a[i-value[j]][j]+1;//相当于把乘法换成加法,即碰到一个钱数于 兑换货币自身价值时,返回到                                        钱数减去该货币值的地方,其值再加1//         }//for     }      cout<<\兑换的最小货币个数是:\               }//while   return 0;   }