关注
我猜想你是希望在输入完成的时候就动态输出结果;
(1)Scanner.nextInt()
这个方法在buff里面是读取并返回buffer的相对应的值后,指针会跳到下一个int; 所以在初始化的时候,第一次初始化input的时候数组的长度只会是buffer里面的第一个数字。
(2) 接下来的for loop里面给input[] 赋值我猜可能是给相对应的input[n]赋值给当前的输入?
然后再判断最大值在下面的dp里面初始化max+1的数字来做dp? 这一块的代码会导致在for
loop里loop完nextInt()之后,后面的input[i]就会是null值,因为buffer里的int值已经读完了,所以会出现空指针(我没throw
exception去具体测试)。比如说输入1200 1300 1400, 那么你的input的长度就是1200,
初始化之后会是input[0] = 1300, input[1] = 1400, input[2] = null ...
然后我在你代码基础上做了一些修改,没有做结束输入的判断,终止while loop之后就会输出结果:
import java.util.ArrayList; import java.util.Scanner; public class NewCoder_WeChat1 { public static void main(String[] args) {
Scanner sc = new Scanner(System.in); int[] mon = {1, 2, 5, 10, 20, 50, 100}; ArrayList outcomes = new ArrayList(); int sum = 0; while (sc.hasNext()) { int n = sc.nextInt(); System.out.println(sc); int[] dp = new int[n + 1]; dp[0] = 0; for (int i = 0; i < mon.length; i++) { for (int j = mon[i]; j <= n; j++) {
dp[j] = dp[j - mon[i]] + 1; }
}
outcomes.add(dp[n]); } for (Object out : outcomes) {
sum += out.hashCode(); }
System.out.println("sum is:" + sum); }
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你实习是赚钱了还是亏钱了? #
32563次浏览 249人参与
# 联影医疗求职进展汇总 #
13056次浏览 67人参与
# 京东开奖 #
477926次浏览 2696人参与
# 你找工作是从容有余 or 匆忙滚爬? #
13299次浏览 100人参与
# 用一句话形容你的团队氛围 #
19404次浏览 181人参与
# 本机械人被这些公司泡过池子 #
37560次浏览 183人参与
# 360集团校招 #
23171次浏览 168人参与
# CVTE求职进展汇总 #
23737次浏览 323人参与
# 中核求职进展汇总 #
29064次浏览 193人参与
# 海康威视工作体验 #
46292次浏览 158人参与
# 外包能不能当跳板? #
48202次浏览 245人参与
# 机械人与华为的爱恨情仇 #
137978次浏览 1013人参与
# 2022毕业即失业取暖地 #
117126次浏览 707人参与
# 毕业论文进行时 #
7637次浏览 85人参与
# 嵌入式岗知多少 #
59302次浏览 548人参与
# 哪些公司校招卡第一学历 #
220925次浏览 779人参与
# 找实习你看重大厂光环还是业务方向 #
42089次浏览 164人参与
# 同bg的你秋招战况如何? #
175914次浏览 1029人参与
# 面对逼签的应对技巧 #
8416次浏览 40人参与
# 我来点评面试官 #
17566次浏览 119人参与
# 说说你知道的学历厂 #
358548次浏览 1286人参与
