zoukankan      html  css  js  c++  java
  • 钱币兑换问题--hdu1284(完全背包)

    Problem Description
    在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。
     
    Input
    每行只有一个正整数N,N小于32768。
     
    Output
    对应每个输入,输出兑换方法数。
     
    Sample Input
    2934
    12553
     
    Sample Output
    718831
    13137761
     

     完全背包:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<algorithm>
    using namespace std;
    #define N 32770
    int main()
    {
        int i,j,n,v[4]={0,1,2,3};
        int dp[N]={1};
    
        for(i=1;i<=3;i++)
        {
            for(j=v[i];j<N;j++)
            {
                dp[j]+=dp[j-v[i]];
            }
        }
        while(scanf("%d",&n)!=EOF)
        {
            printf("%d
    ",dp[n]);
        }
        return 0;
    }
    #include<stdio.h>
    #include<algorithm>
    #include<string.h>
    #define N 10
    
    using namespace std;
    int main() 
    {
        int n,s,i;
        while(scanf("%d",&n)!=EOF)
        {
            s=0;
            for(i=0;i<=n/3;i++)
            {
                s+=(n-i*3)/2+1;
            }
            printf("%d
    ",s);
        }
        return 0;
    }
  • 相关阅读:
    普通变量和数组作为函数参数的区别
    2.1
    SQL NULL 值
    SQL ALTER TABLE 语句
    SQL CHECK 约束
    SQL LEFT JOIN 关键字
    SQL JOIN
    SQL Alias(别名)
    SQL 通配符
    从暴力中解脱,
  • 原文地址:https://www.cnblogs.com/zhengguiping--9876/p/4473967.html
Copyright © 2011-2022 走看看