| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 359 人关注过本帖
标题:用递归做编程,请教高手!
只看楼主 加入收藏
juliet
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-1-11
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
用递归做编程,请教高手!
若干人排队买早餐,早餐1元/份。m个客人手持一元纸币, n人手持二元纸币,初始时售卖者没有任何钱币。计算共有多少种可行的排队方法,使所有的人都可以顺利购买到早餐。
搜索更多相关主题的帖子: 递归 
2010-01-11 10:42
h978147355
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:187
注 册:2009-12-29
收藏
得分:20 
这题的条件是不是要求m要大于n??
2010-01-11 11:29
h978147355
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:187
注 册:2009-12-29
收藏
得分:0 
做了半天终于做出来了
代码如下
2010-01-11 14:59
h978147355
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:187
注 册:2009-12-29
收藏
得分:0 
//思路是用店主的进出的1元为数组成员,
//收取一个一元的 数组成员为1 二元的就退一元 也就是-1
//为了这个程序有意义 请输入的m值要大于n的值
#include<stdio.h>
#include<stdlib.h>
int m,n;
 int sum(int lenth,int *p)//求一个成员全是1,-1的整数数组的和
  { int i,s=0;
    for(i=0;i<lenth;i++)
       s=s+p[i];
    if(s>=0)
       return 1;
     else
       return 0;
}
int bol(int length,int *a)//求一个1,-1的数组是否满足条件
{int result;
 if(length==1)
 {
     if(a[0]==1)
        result=1;
     else
        result=0;
 }
 else
 {
   if(bol(length-1,a)&&sum(length,a))
      result=1;
    else
      result=0;
 }
return result;
}
 
int maxion(int x,int y)//求一个0 ,1的整数数组的最大值(当作二进制)
{int c=0,i;
for(i=1;i<=x;i++)
   c=c*2+1;
for(i=1;i<=y;i++)
 c=c*2;
 return c;
}


int zuhe(int summ,int *a)//(把一个整数用二进制表示 0用-1来表示)
{int x,la=0;
  for(x=m+n-1;x>=0;x--)
  {
      if(summ>0)
      {
        if(summ%2==1)
          {a[x]=1;
           la++;
          }
        else
         a[x]=-1;
       summ=summ/2;
      }
      else
          a[x]=-1;
  }
   if(la==m&&bol(m+n,a))
          return 1;
      else
          return 0;
}




void main()
{int *a;
int su,cout=0;
printf("请输入持有一元纸币的人的个数:");
scanf("%d",&m);
printf("请输入持有两元纸币的人的个数:");
scanf("%d",&n);
a=(int*)malloc((m+n)*sizeof(int));
for(su=0;su<=maxion(m,n);su++)
if(zuhe(su,a))
cout++;
printf("总共有%d种排队方法。\n",cout);

}
2010-01-11 14:59
快速回复:用递归做编程,请教高手!
数据加载中...
 
   



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

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