zoukankan      html  css  js  c++  java
  • 找零问题-完全背包

    问题描述

    100元钱,有几种零钱,比如1元,5元,10元,求有几种组合

    分析

    时间复杂度O(m*n),空间复杂度O(n),完全背包问题

    代码如下

     1 #include <stdio.h>
     2 #define N 100
     3 int a[N + 5]; 
     4 int change[4]; //有几种零钱
     5 //主功能函数,找到一共需要几种零钱
     6 int findCount(int money, int countOfChange)
     7 {
     8     int i, j;
     9     a[0] = 1;
    10     for (i = 1; i <= countOfChange; i++)
    11     {
    12         for (j = change[i]; j <= money; j++)
    13         {
    14             //核心的代码,就此一句
    15             a[j] = a[j] + a[j - change[i]];
    16         }
    17         /*
    18         //去掉注释,可打印每一步的情况
    19         for (j = 0; j <= money; j++)
    20             printf("%d	", a[j]);
    21         puts("");*/
    22         
    23     }
    24     return a[money];
    25 }
    26 int main()
    27 {
    28     int money, num, count, i;
    29     money = 6;
    30     num = 3;
    31     //一系列输入
    32     printf("input the money u have: ");
    33     scanf("%d", &money);
    34     printf("input the kinds of changes: ");
    35     scanf("%d", &num);
    36     for (i = 1; i <= num; i++)
    37     {
    38         printf("the %dth change: ", i);
    39         scanf("%d", &change[i]);
    40     }
    41     count = findCount(money, num);
    42     printf("the count is %d.
    ", count);
    43     return 0;
    44 }
  • 相关阅读:
    Discuz!NT 系统架构分析
    jquery pager
    Nhibernate分页方法
    Discuz nt模板机制
    WTclient创建OPC client方法
    OPC
    Regular Expressions in Java
    How to use VS to manipulate Access
    OPC客户端设计
    How to use VS to manipulate Excel使用MFC读写Excel
  • 原文地址:https://www.cnblogs.com/chuanlong/p/3234705.html
Copyright © 2011-2022 走看看