标题:用1元,2元,5元,10元,20元和50元的纸币组成100元,共有多少种情况。
只看楼主
windfresh
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-5-18
 问题点数:0 回复次数:7 
用1元,2元,5元,10元,20元和50元的纸币组成100元,共有多少种情况。
要求写出除了多重循环方案之外的另一种程序代码,要求输出总方案数和每种方案中各纸币的个数。
搜索更多相关主题的帖子: 纸币 
2008-10-15 19:19
happycplusplus
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-10-10
得分:0 
给你点思路把
首先考虑
  1元可以组成100次;
  2元可以组成50次;
  5元可以组成20次;
  10元可以组成10次;
  20元可以组成5次;
  50元可以组成2次;(这些都是你for循环的终止值)
然后判断条件就是
  1+2+5+10+20+50==100&&1*i+2*j+5*k+10*l+20*o+50*p==100(i,j,k,l,o,p是你上面做循环的) 在定义一个int count=0记数  
如果条件成立  
那么 count++;
cout<<count;

[[it] 本帖最后由 happycplusplus 于 2008-10-16 11:42 编辑 [/it]]
2008-10-16 11:39
kakaqq
Rank: 1
等 级:新手上路
威 望:1
帖 子:48
专家分:0
注 册:2008-10-7
得分:0 
那要多少次循环啊~~~~~~~看来算法重要性太强大了···
2008-10-16 12:16
lxlx825
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-10-8
得分:0 
#include<iostream>
using namespace std;

int main()
{
    int a,b,c,d,e,f,count,j;
    int i[200][6];
    count=0;
    for(a=0;a<=2;a++)
    {
        for(b=0;b<=5;b++)
        {
            for(c=0;c<=10;c++)
            {
                for(d=0;d<=20;d++)
                {
                    for(e=0;e<=50;e++)
                    {
                        for(f=0;f<=100;f++)
                        {
                            if(a*50+b*20+c*10+d*5+e*2+f>100) break;
                            else if(a*50+b*20+c*10+d*5+e*2+f==100)
                            {
                                i[count][6]={a,b,c,d,e,f};
                                count++;
                            }
                            else continue;
                        }
                    }
                }
            }
        }
    }
    cout<<count<<'\n';
    for(j=0;j<count;j++)
    {
        cout<<i[j][6]<<'\n';
    }
    return 0;
}
我用这个循环怎么总是报错啊?

为比盖茨挣得多而奋斗
2008-10-17 11:16
carekee
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-1-23
得分:0 
i[count][6]={a,b,c,d,e,f};
是什么?值吧?怎么在你这成数组了?

2008-10-17 16:27
lxlx825
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-10-8
得分:0 
我是想把可以实现加起来等于100的所有可能存到一个数组里

为比盖茨挣得多而奋斗
2008-10-17 16:38
happycplusplus
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-10-10
得分:0 
楼主  帮你修改了下

#include<iostream.h>
void main()
{
    int a,b,c,d,e,f,j;int count=0;
    count=0;
    for(a=1;a<=2;a++)
    {
        for(b=1;b<=5;b++)
        {
            for(c=1;c<=10;c++)
            {
                for(d=1;d<=20;d++)
                {
                    for(e=1;e<=50;e++)
                    {
                        for(f=1;f<=100;f++)
                        {
                             if((a+b+c+d+e+f==100)&&(1*f+2*e+5*d+10*c+20*b+50*a))
                            {
                                cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<endl;
                                count++;
                            }
                        }
                    }
                }
            }
        }
    }
    cout<<"一共有"<<count<<"次";
  
}
2008-10-17 18:04
sweetyhappy
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-16
得分:0 
以前这道题是百钱买百鸡
2008-10-17 19:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-238482-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.156440 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved