zoukankan      html  css  js  c++  java
  • 动态规划入门_钱币兑换问题

    首先递推公式 : 钱币面值 从 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 }
  • 相关阅读:
    安装win7 ubuntu双系统
    idea maven打jar包
    mongodb入门
    mongodb备份与恢复
    使用cmd时cd命令失效
    vue 项目中使用阿里巴巴矢量图标库iconfont
    vue img标签用法
    vue 点击当前元素改变样式
    vue 路由跳转传参
    iview table绑定双击事件
  • 原文地址:https://www.cnblogs.com/kangxinxin/p/10760078.html
Copyright © 2011-2022 走看看