• C++实现最少硬币兑换问题


      

                                最少硬币兑换问题

    #include<iostream>
    #include<fstream> 
    using namespace std; 
    
    int n,L;   //n种硬币L长的数组
    int c[13][20];
    int T[13];//硬币面值
    
    
    int jisuan(int i,int j);
    int main()
    {    
        fstream file("2.1_input.txt");   //这是需要读取数据的文件的路径。 
        fstream file2("2.1_output.txt");   //这是需要输出数据的文件的路径。 
        if(file.fail() || file2.fail())
        {
            cout<<"The file open error!"<<endl;
        }
        else
        {
            file>>n;        
            for(int i=1;i<=n;i++)
            {
                file>>T[i];
            }
            file>>L;
                
        }
        int k;
    
           k=jisuan(n,L);
        file2<<k<<endl;
    
        return 0;
    }
    
    int jisuan(int i,int j)
    {
        int min;
        if((i==0)||(j==0))
            c[i][j]=0;
        if(i==1)
        {
            if(((1<=j)&&(j<T[1]))||((T[1]<=j)&&(j<=L)&&(j%T[1]!=0)))
                c[i][j]=500;
    
            if((T[i]<=j)&&(j<=L)&&(j%T[i]==0))
                c[i][j]=j/T[i];
        }
        else
        {
            min=jisuan(i-1,j);
            for(int x=j/T[i];x>0;x--)
            {
                int a=jisuan(i-1,j-x*T[i])+x;
                if(min>a)
                    min=a;
            }
            c[i][j]=min;
        }
    
        return c[i][j];
    }

  • 相关阅读:
    MVC知识点01
    MVC知识点02
    ADO.NET基础01
    WinForm,MVC知识点
    C#基础01
    28、对多次使用的RDD进行持久化或Checkpoint
    27、优化数据结构
    26、高性能序列化类库
    25、诊断内存的消耗
    24、Checkpoint原理剖析
  • 原文地址:https://www.cnblogs.com/yjd_hycf_space/p/6667274.html
Copyright © 2020-2023  润新知