关注
我猜想你是希望在输入完成的时候就动态输出结果;
(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); }
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 为了入行xx岗,我学了__ #
4773次浏览 89人参与
# 小厂实习有必要去吗 #
77812次浏览 368人参与
# 实习的你做了哪些离谱的工作 #
7481次浏览 109人参与
# Prompt分享 #
1540次浏览 52人参与
# 简历第一个项目做什么 #
5986次浏览 93人参与
# 你都见过什么样的草台班子? #
3345次浏览 41人参与
# 被说“做题家”,你的反应是_____? #
1182次浏览 48人参与
# 如果让你发明个APP,你会想做什么 #
1562次浏览 48人参与
# 听到哪句话代表面试稳了OR挂了? #
124529次浏览 559人参与
# 工作压力大,你会干什么? #
11016次浏览 268人参与
# 找实习记录 #
22736次浏览 406人参与
# 大家实习每天都在干啥 #
112177次浏览 606人参与
# 如果不上班,你会去做什么 #
5441次浏览 229人参与
# 邪修省钱套路 #
6287次浏览 218人参与
# AI让你的思考变深了还是变浅了? #
3679次浏览 107人参与
# 金三银四,你有感觉到吗 #
673356次浏览 6040人参与
# 分享一个让你热爱工作的瞬间 #
57129次浏览 482人参与
# 你想跟着什么样领导? #
45460次浏览 231人参与
# 我的求职精神状态 #
419363次浏览 3071人参与
# 通信硬件薪资爆料 #
1200315次浏览 7192人参与