美团点评面试题
来源:互联网 发布:小葫芦直播平台大数据 编辑:程序博客网 时间:2024/05/02 02:41
题目:
给你六种面额 1、5、10、20、50、100 元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合的个数。
输入:100
输出:333
package com.test;import java.util.Scanner; import java.util.Arrays; /** * 解题思路:只有1元钱时,只有1元和5元钱时; * @author chengxin * */public class Test2 { public static long count(int n) { int coins[] = { 1, 5, 10, 20, 50, 100 }; int h = coins.length; long dp[][] = new long[h][n + 1]; Arrays.fill(dp[0], 1); for (int i = 0; i < dp.length; i++) {for (int j = 0; j < dp[0].length; j++) {System.out.print(dp[i][j]);}System.out.println();} for (int i = 1; i < h; i++) { //表示从1元到100元纸币 h=6 for (int j = 1; j <= n; j++) {//组成N元依次循环 n=5 int m = j / coins[i];//组成N元时最多可用多少种相应的纸币 for (int k = 0; k <= m; k++) { dp[i][j] = dp[i][j] + dp[i - 1][j - k * coins[i]];//表示组合次数 } //System.out.print(dp[i][j]+" "); } //System.out.println(); } return dp[h - 1][n]; } public static void main(String args[]) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n = sc.nextInt(); long res = count(n); System.out.println(res); } } }
阅读全文
2 0
- 美团点评面试题
- 2017美团点评校招前端面试题
- 2017美团点评前端开发岗位面试题
- 美团点评面经
- 大众点评面试题
- java面试题--美团
- Android 面试题 美团
- 美团js面试题
- 美团js面试题
- 2015美团点评算法工程师笔试和面试题整理
- 美团前端面试题及答案
- 美团-2017前端面试题
- C++面试题(十六) 金山&美团
- 美团点评编程题
- 美团点评面试有感
- 美团-大众点评-春招面经
- 美团点评前端面试
- 2017美团点评Code
- jsp页面使用jstl获取当前时间
- firewall-cmd
- 大数据之Linux02
- 进程和线程的区别
- Redis的发布订阅的使用方法
- 美团点评面试题
- c++中箭头操作符(->)和点操作符(.)有什么不同
- USACO-2017-FEB-金组 Why Did the Cow Cross the Road II
- Stars POJ 2352(简单树状数组)
- 使用管道流和线程实现:控制台不断输入,并输出到文件中
- Sqlmap扩展—外部IP代理池实现
- 区间交(树状数组+二分)hdu5700
- Linux的一些基本操作以及搭建Redis集群时的一些配置和踩过的坑
- 2.1_数据类型1_赋值