关注
我猜想你是希望在输入完成的时候就动态输出结果;
(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); }
}
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 腾讯求职进展汇总 #
370759次浏览 3015人参与
# 面试常问题系列 #
8564次浏览 275人参与
# 神州信息求职汇总 #
40635次浏览 287人参与
# 职场中你干过哪些“蠢”事 #
89745次浏览 473人参与
# 2025退税开始啦 #
13965次浏览 233人参与
# 我在牛爱网找对象 #
155193次浏览 1187人参与
# 面试时被问的最奇葩的问题 #
14971次浏览 88人参与
# 面试被问期望薪资时该如何回答 #
205634次浏览 1246人参与
# 传音控股求职进展汇总 #
5748次浏览 35人参与
# 双非本科的出路是什么? #
105678次浏览 1030人参与
# 职场新人生存指南 #
236412次浏览 5988人参与
# 非技术岗投递进展 #
116919次浏览 977人参与
# 通信/硬件求职避坑tips #
39809次浏览 328人参与
# 如何排解工作中的焦虑 #
121590次浏览 1515人参与
# 汇川技术求职进展汇总 #
106473次浏览 738人参与
# 那些我实习了才知道的事 #
164596次浏览 1391人参与
# 运营每日一题 #
54686次浏览 507人参与
# 饿了么求职进展汇总 #
11821次浏览 124人参与
# 如果有时光机,你最想去到哪个年纪? #
37620次浏览 705人参与
# 安克创新求职进展汇总 #
18355次浏览 144人参与
# 招银网络求职进展汇总 #
93762次浏览 601人参与