• 动态规划入门_钱币兑换问题


    首先递推公式 : 钱币面值 从 1,一直遍历到    n ,  然后兑换的面值从  j=1 到  j  等于最大的面值,  面对 第  i种面值的硬币,有两种选择,不选则当前硬币面值的所有情况  加上选择当前面值的

    所有情况   ,于是 就得出了 一个 递推公式 F[ j ]  += F[ j - value[ i ] ];

    问题描述:

    Problem Description
    在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。
     

    Input
    每行只有一个正整数N,N小于32768。
     

    Output
    对应每个输入,输出兑换方法数。
     

    Sample Input
    2934 12553
     

    Sample Output
    718831 13137761
     

    Java 实现Ac 代码

     1 import java.util.Scanner;
     2 
     3 public class Main {
     4     
     5     public static void main(String[] args) {
     6         
     7         Scanner cin = new Scanner (System.in);
     8         while(cin.hasNext()){
     9             int n = cin.nextInt();
    10             int [] value = {1,2,3};
    11             int [] dp = new int [32800];
    12             
    13             dp [0] =1;
    14             for(int i = 0;i<value.length;i++){
    15                 for(int j = value[i];j<=n;j++){
    16                     dp[j] = dp[j]+dp[j-value[i]];
    17                 }
    18             }
    19             
    20             
    21             System.out.println(dp[n]);
    22         }
    23         
    24     }
    25 
    26 }
  • 相关阅读:
    golang版本管理工具gvm
    golang问题101
    服务器部署Jupyter Notebook
    Python 获取MySql某个表所有字段名
    Python自带HTTP文件传输服务
    log4net 配置
    GridView控件RowDataBound事件中获取列字段值的几种途径
    最简单去Button回车事件
    oracle 多条执行语句同时执行
    MERGE Into
  • 原文地址:https://www.cnblogs.com/kangxinxin/p/10760078.html
Copyright © 2020-2023  润新知