动态规划-硬币组合数目
来源:互联网 发布:linux mount 绑定目录 编辑:程序博客网 时间:2024/06/06 08:29
import java.util.Scanner;/* * 硬币的类型有1角,2角,5角,给定一个数额n,多少种组合方式 *///暴力解法public class CashNum { public int getNum(int n){ int count=0; for(int i=0;i<=n;i++) for(int j=0;j<=n;j=j+2) for(int k=0;k<=n;k=k+5) if(i+j+k==n){ //System.out.println(n+"="+i+"+"+j+"+"+k+" "); count++; } return count; } public int getNum2(int[] array,int n){ if(array.length==0||array==null||n<0) return 0; int[][] dp=new int[array.length+1][n+1]; for(int i=0;i<array.length+1;i++) for(int j=0;j<n+1;j++) dp[i][j]=0; for(int i=0;i<array.length+1;i++) dp[i][0]=1; for(int i=1;i<array.length+1;i++) for(int j=1;j<n+1;j++){ dp[i][j]=0; for(int k=0;k<=j/array[i-1];k++){ dp[i][j]+=dp[i-1][j-k*array[i-1]]; } } return dp[array.length][n]; } public static void main(String[] args) { // TODO Auto-generated method stub CashNum cn=new CashNum(); Scanner sc =new Scanner(System.in); int n=sc.nextInt(); int count=cn.getNum(n); int[] array={1,2,5}; System.out.println("count="+count); int count2=cn.getNum2(array, n); System.out.println("count2="+count2); }}
阅读全文
0 0
- 动态规划-硬币组合数目
- 硬币组合问题-动态规划
- 动态规划应用—硬币组合问题
- 【动态规划】硬币面值组合(上台阶)
- 动态规划之硬币组合问题
- 【动态规划】最小硬币面值组合
- 动态规划之硬币面值组合问题
- 动态规划-最少硬币组合问题
- 【动态规划】凑硬币
- 动态规划之硬币
- 动态规划----硬币问题
- 动态规划-最少硬币
- 动态规划-硬币问题
- 动态规划-硬币问题
- 动态规划:分硬币
- 动态规划-硬币问题
- 动态规划 硬币 POJ
- 动态规划凑硬币
- switch语句的用法
- leetcode 328. Odd Even Linked List
- IO分类
- 一句代码搞定 UIButton 的图片与文字布局
- Freesshd Permission denied (publickey).
- 动态规划-硬币组合数目
- String对象
- bzoj 2038 小z的袜子
- 【兴趣书签】感兴趣的网站和频道
- 状态栏配置
- RSA加密算法简介
- NOIP提高组2001-统计单词个数
- 初识Hibernate
- 关于Eclipse中Working Sets的问题