最少需要多少枚硬币

日本旅行

http://www.nowcoder.com/questionTerminal/c21a64b2127b4138b75e86caeb94aaa0

钱从大到小一枚一枚加起来就行了,直到等于A为止:

import java.util.*;
public class Main {
    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);
        int[] C = new int[6], v = {1, 5, 10, 50, 100, 500};
        for(int i = 0; i < 6; ++i) C[i] = sc.nextInt();
        int A = sc.nextInt(), p = 5, r = 0;    //货币指针p初始在500元的位置,r是硬币枚数
        while(A > 0){
            if(p < 0) break;
            if(C[p] == 0 || A < v[p]){    //没有当前种类的硬币,或者单面值已超过A,就看下一个小面值
                p--;
                continue;
            }
            A -= v[p];
            C[p]--;    //每用一个硬币,就减少一个
            r++;
            if(A == 0){    //正好凑够了A这么多钱
                System.out.println(r);
                return;
            }
        }
        System.out.println("NOWAY");
    }
}
全部评论

相关推荐

不知道怎么取名字_:两个方向 1.简历针对性准备下 2.面试前也需要准备的 主要还是要看各个公司需求,看公司行业和岗位描述,那里面已经写了对技术的需求,一份简历,不可能和所有嵌入式岗位都匹配的
投递北京经纬恒润科技股份有限公司等公司6个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务