将1 2 5 10 20 50分等6种大小货币各若干(最多为10个),可以组成多少种数量货币
比如1,2,5各一个,10,20,50各0个,可以组成
1,2,3,5,6,7,8小弟我只会用循环做,大家有没有其他的方法啊??说一下。

解决方案 »

  1.   

    不明白
    楼上的给说下!
    fuyang_ywf() 
    你说的我想的头有点晕了!
    回去想想吧!
      

  2.   

    大致说一下:
    利用a[i] == 1表示币值为i可以组合出来,当然a数组初始化为0。
    我们先假设每种币值只有一个,初始化a为0
    max = b;
    a[b] = 1;//这里的b为币值中最小的那个数,按照楼主的例子那就是1了
    for(每个币值b,即例子中的1,2,5)//这里要去掉第一个了,应为上面已经赋值了
    {
        for(j =max; j>=0; j++)
        {
            if(a[j] == 1)
            {
              a[j+b] = 1;
              if(j+b > max) max = j+b;
            }
        }
    }
    然后循环a数组,如果值为1,则表示该币值可以组合出来,由于先假设每种币值只有一个,如果有多个的话,那么第二重循环就做多遍就行了.
      

  3.   

    vinegar111(), 我的理解是你说的第二种理解,就是写这样一个方法萨
    // a1为1分的个数,以此类推
    int answer(int a1, int a2, int a5, int a10, int a20, int a50) {
        int answer=0;
        …………
        return answer;
    }
      

  4.   

    tootball() ( )880种,应该多了一些吧,题目中明确指出--可以组成多少种数量货币
    难道你用1分货币组成的4分货币,和用2分货币组成的4分货币不是同一种数量货币吗?
    这个应该用排列组合的方法来计算的吧!
    以上说法,纯属个人意见。  
     
    用1分货币组成的4分货币,和用2分货币组成的4分货币是同一种数量货币
    880种的意思是,1  2 5 10 20 50分等6种大小货币各10个
    可以组成从1-880分中间的任何一个分数。那当然是880了
      

  5.   

    最多10个硬币的方法,从0开始算起,405个#include <iostream.h>
    #include <memory.h>
    int main()
    {
    int fen[6]={1,2,5,10,20,50};
    int result[510];
    int temp[510];
    memset(result,0,sizeof(result));
    memset(temp,0,sizeof(temp));

    result[0]=1;
    for(int j=0; j<10;j++)
    {
    memset(temp,0,sizeof(temp));
    for(int k=0; k<510;k++)
    {
    for(int i=0; i<6;i++)
    {
    if(result[k]!=0)  temp[fen[i]+k]++;
    }
    }
    for( k=0; k<510;k++)
    {
    if(temp[k]!=0)
    {
    result[k]=1;
    }
    }
    }

    int cnt =0;
    for(int k=0; k<510;k++)
    {
    if(result[k]!=0){cnt++;}
    }
    cout<<cnt<<endl;
    return 0;
    }
      

  6.   

    低价转让本人学习JAVA系列的培训资料,详细介绍如下,后面有联系方式,需要的请速联系。
    一、 JAVA基础培训
    1. 孙鑫Java无难事(共108集)
    本套光盘由孙鑫老师亲自授课录制。内容涵盖面广,从入门到精通,授课通俗易懂,分析问题独到精辟,学员通过本套光盘的学习,能够快速掌握Java编程语言,成为Java高手。
    2. 张孝祥Java就业培训(共56集)
    本套教学光盘深入浅出的理论分析、精练生动的案例讲解、亲切直观的操作界面、恍然大悟的学习收获。张孝祥老师的课程,就不用多说了。
    3. 翁凯Java语言视频培训(共30集)
            本视频教学是由浙江大学著名年轻计算机专家翁恺教授主讲,一共30集,讲得很好,从JAVA的基础讲起,由浅入深,绝对是精品。看本视频讲座最好是有一点c++的底子
    二、 JAVA进阶培训
    1. 赛迪网校J2EE软件工程师培训(J2EE基础13集  高级17集  案例7集)
           本课程包括J2EE的各个主要方面,以及开发环境,设计模式,和经典案例分析等实用内容。通过本课程的学习,学员将具有J2EE开发的扎实理论基础和实际设计经验,可胜任企业级应用的设计和开发等实际工作。本课程共计约40课时。授课教师均是来自主流J2EE厂商并具有J2EE 5年以上开发和咨询经验的技术专家。
    2. J2EE Web程序开发(共38集)
    国内最知名的J2EE讲师刘晓涛讲师执教,课程生动形象并结合典型企业案例深入的分析。从零开始:该课程以零基础为起点,强调基础理论结合实际;以基础理论课程为第一阶段,到常用工具使用及工作应用为提高部分。专业性强:多平台软件开发(Windows/Linux) ;紧跟先进的技术(极限编程/测试驱动开发);规范化(学习印度软件经验);不仅仅是编程,在教学过程当中渗透设计思想;编程思想的熏陶,打通任督二脉,对编程语言一通百通;软件工程思想的灌输(分析,设计,实现,测试一条龙)。
    三、 JAVA实战项目培训录像
    该培训录像是北京尚学堂科技第一个项目(聊天系统)和 第二个项目(坦克大战)的课堂实录,马士兵老师以手把手一行一行代码的形式教大家如何开发一个示例性Chat和一个相当完备的TankWar游戏,详尽透彻的解释了j2se的常用知识,只要按照教程中的操作一步一步完成,你就足以掌握j2se/eclipse到能够进一步学习的水平了,项目实战,不容错过!
    四、 Oracle 9i 大型视频培训录像(共64集,13.4G)
        *1Z0-007 Introduction to Oracle9i SQL 
    *1Z0-031 Oracle9i DBA Fundamentals I 
    *1Z0-032 Oracle9i DBA Fundamentals II 
    *1Z0-033 Oracle9i Performance Tuning
        另附全套PPT培训讲稿。联系方式:
    QQ:421130479
    MSN:[email protected]
    Tel:13512510369(短信佳)
    E-mail:[email protected]
      

  7.   

    不算0就是792
    算0是793
    void calc()
    {
    int fen[6]={1,2,5,10,20,50};
    int result[881];
    int temp[881];
    memset(result,0,sizeof(result));
    memset(temp,0,sizeof(temp));
    result[0]=1;
    for(int i=0; i<6; i++)
    {
    memset(temp,0,sizeof(temp));
    for(int k=0;k<881;k++)
    {
    for(int j=1; j<10;j++)
    {
    if(result[k]!=0)
    {
    assert(k+fen[i]*j<=880);
    temp[k+fen[i]*j]=1;
    }
    }
    }
    for( k=0; k<880;k++)
    {
    if(temp[k]!=0)
    {
    result[k]=1;
    }
    }
    }
    int cnt =0;
    for(int k=0; k<881;k++)
    {
    if(result[k]!=0){cnt++;}
    }
    cout<<cnt<<endl;
    }