zoukankan      html  css  js  c++  java
  • 最少硬币问题(无穷硬币)

     1 /*贪心可能导致无解;
     2  硬币系统是10,7,5,1元,那么12元用贪心法得到的硬币数为3,而最少硬币数是2。
     3  对于此题,可以举个例子:
     4     若有1,5,7,10这四种货币,则易知
     5     1=1
     6     2=1+1
     7     3=1+1+1
     8     ……
     9     6=5+1
    10  那么推下去可知
    11          表示12这个面值需要的货币数,等于表示11或7或5或2需要的货币数+1。
    12          那么题中若要求表示12所需用的最小货币数,只需寻找表示11或7或5或2需要的货币数中的最小值。
    13  
    14  */
    15  
    16  //硬币数无穷 
    17  #include <iostream>
    18  #include <cstring>
    19  using namespace std;
    20  
    21  int coinValue[] = { 25, 21, 10, 5, 1 }; //硬币系统
    22  int money = 63;//钱数
    23  int coinUsed[100];//每种数量的钱币所需最少硬币数 
    24  
    25  void solve()
    26  {
    27      int i,j,k;
    28      int len = sizeof(coinValue)/sizeof(coinValue[0]);
    29      memset(coinUsed,0,sizeof(coinUsed));
    30      
    31      for(i=1; i<=money; i++)//递推 
    32      {
    33          int minCoins = i/coinValue[len-1];
    34          int temp = 0;
    35          for(j=0; j<len; j++)
    36          {
    37              if(i>=coinValue[j])
    38              {
    39                  temp = coinUsed[i - coinValue[j]] + 1; 
    40                  /*
    41                  在temp赋初值为0时,下面的if不能和外层if并列,改为1貌似对了
    42                  money=1时前几次 内层for未执行,此时 minCoins变为0了,到内层最后temp变为1,不过此时 minCoins还是0,所以就错了 
    43                  */
    44                  if(minCoins>temp)
    45                      minCoins = temp;                    
    46              } 
    47              
    48          }
    49          coinUsed[i] = minCoins;
    50      }
    51  }
    52   
    53  int main()
    54  {
    55      int i,j,k;
    56      solve();
    57      cout<<coinUsed[money]<<endl;
    58      while(1);
    59      return 0;
    60  }
  • 相关阅读:
    nginx中root和alias的区别
    linux修改服务时间
    nginx.conf属性
    mybatis批量操作
    linux查看日志关键字搜索
    项目启动报错Caused by: java.lang.ClassNotFoundException: com.sun.image.codec.jpeg.ImageFormatException
    springboot打包忽略Test
    mybatis文档
    On Java 8
    zabbix如何修改web字体
  • 原文地址:https://www.cnblogs.com/hxsyl/p/3019076.html
Copyright © 2011-2022 走看看