zoukankan      html  css  js  c++  java
  • 1元、5元、10元、20元、50元、100元六种面额,输入N,计算有多少种组合可以等于N

    有足够多的1元、5元、10元、20元、50元、100元六种面额的纸币,输入N,计算出有多少种组合可以等于N;

    如输入N=5,则返回2。因为有两种组合:1+1+1+1+1=5,5=5,即5张1元或者1张5元;

    Java代码如下:

    public class Test{
    public int getGroups(int N){
    int round5=(int) Math.floor(N/5); //N除以5并向下取整
    int round10=(int) Math.floor(N/10);
    int round20=(int) Math.floor(N/20);
    int round50=(int) Math.floor(N/50);
    int round100=(int) Math.floor(N/100);
    int num=0;
    if(N>0&&N<5){ //N取值大于0小于5
    num=1;
    }
    if(N>=5&&N<10 && round5>0){ //N取值大于等于5小于10
    for(int i5=0;i5<=round5;i5++){
    int n5=N-(5*i5);
    if(n5>=0){
    num=num+1;
    }
    }}
    if(N>=10&&N<20 && round5>0&& round10>0){ //N取值大于等于10小于20
    for(int i5=0;i5<=round5;i5++){
    for(int i10=0;i10<=round10;i10++){
    int n10=N-(5*i5+10*i10);
    if(n10>=0){
    num=num+1;
    }}}}
    if(N>=20&&N<50 && round5>0&& round10>0&&round20>0){ //N取值大于等于20小于50
    for(int i5=0;i5<=round5;i5++){
    for(int i10=0;i10<=round10;i10++){
    for(int i20=0;i20<round20;i20++){
    int n20=N-(5*i5+10*i10+20*i20);
    if(n20>=0){
    num=num+1;
    }}}}}
    if(N>=50&&N<100 && round5>0&& round10>0&&round20>0&&round50>0){ //N取值大于等于50小于100
    for(int i5=0;i5<=round5;i5++){
    for(int i10=0;i10<=round10;i10++){
    for(int i20=0;i20<round20;i20++){
    for(int i50=0;i50<round50;i50++){
    int n50=N-(5*i5+10*i10+20*i20+50*i50);
    if(n50>=0){
    num=num+1;
    }}}}}}
    if(N>=100 && round5>0&& round10>0&&round20>0&&round50>0&&round100>0){ //N取值大于等于100
    for(int i5=0;i5<=round5;i5++){
    for(int i10=0;i10<=round10;i10++){
    for(int i20=0;i20<round20;i20++){
    for(int i50=0;i50<round50;i50++){
    for(int i100=0;i100<round100;i100++){
    int n100=N-(5*i5+10*i10+20*i20+50*i50+100*i100);
    if(n100>=0){
    num=num+1;
    }}}}}}}
    return num;
    }
    public static void main(String[] args){
    Test test=new Test();
    int num=test.getGroups(4);
    System.out.println(num);
    }
    }

  • 相关阅读:
    [JAVA]Java下XML的解析
    [短彩信]C#短彩信模块开发设计(4)——其他
    [短彩信]C#短彩信模块开发设计(3)——协议
    入住博客园了~
    【Oyster轻量框架】C# ORM 较灵活的轻量数据模型
    C# Oracle 之Insert 与 Update 的封装
    用WORD发布博客测试~
    C#自带的.net类库获得主机名和IP
    百万本书籍视频资料免费送
    教你使用ECode破解E语言crackme视频教程
  • 原文地址:https://www.cnblogs.com/shuyichao/p/10475501.html
Copyright © 2011-2022 走看看