微型蓝球赛问题
来源:互联网 发布:同知是什么官 编辑:程序博客网 时间:2024/06/10 01:59
/*
问题描述: 甲,乙两队进行蓝球比赛,结果甲队以S:T 获胜.(T<S<=10, S,T
由键盘输入). 比赛中, 甲队得分始终领先(严格大于乙队). 规定以任何方式进一
球都只得一分. 编程序打印该比赛的每一种可能的不同的得分过程, 以及所有不同
过程的总数.
*/
- #include<iostream>
- using namespace std;
- bool Process[20];//存储比赛过程,true代表甲队得分,false代表已队得分
- int count=0;//存储不同过程的总数
- int main(){
- int S,T;
- void Match(int S,int T,int s,int t);//s,t代表当前甲队与已队的得分
- cout<<"输入S,T(1<=T<S<=10)!"<<endl;
- cin>>S>>T;
- Match(S,T,0,0);
- cout<<"不同过程的总数为:"<<count<<endl;
- return 0;
- }
- void Print(int S,int T){
- for(int i=0;i<S+T;i++){
- if(Process[i]==true)cout<<"甲队进一球!"<<endl;
- else cout<<"已队进一球!"<<endl;
- }
- cout<<"****************"<<endl;
- return;
- }
- void Match(int S,int T,int s,int t){
- if(s==S && t==T){//比赛结束
- count++;
- Print(S,T);
- return;
- }
- else if(s<S && t<T){//两队都可以得分
- if(s==t){//只能甲队得分
- Process[s+t]=true;
- Match(S,T,s+1,t);
- }
- else{
- Process[s+t]=true;
- Match(S,T,s+1,t);
- Process[s+t]=false;
- Match(S,T,s,t+1);
- }
- }
- else if(s==S){
- Process[s+t]=false;
- Match(S,T,s,t+1);
- }
- else if(t==T){
- Process[s+t]=true;
- Match(S,T,s+1,t);
- }
- return;
- }
- 微型蓝球赛问题
- 球赛排名问题
- 微型真空泵的可靠性问题
- 球赛受伤。。。
- 烤肉 + 球赛
- 蓝桥 幂的问题
- 蓝
- 2007-12-14球赛
- tv球赛节目预告链结
- 没球赛看到日子
- 精彩的球赛
- 大学最后的球赛
- 观球赛有感
- 绘制球赛贝尔图
- 乒乒球赛程
- 微型嵌入式GUI开发者回答网友的问题
- 【蓝桥第三周】排队购票问题
- 【蓝桥第二周】01背包问题
- 在execute sql task里面的sql如何传进参数和传出参数.
- 最佳开源软件一览 (转)
- 权限角色管理模块
- 周六高三同学的北京小聚记~~
- .net 发送E_mail
- 微型蓝球赛问题
- TiddlyWiki软件下载与安装
- 在J2EE架构中各层的数据表示方法
- vs.Net2003无法打开或创建Web应用程序若干解决办法
- ACE应用在Linux下编译事项
- 在Microsoft实习的日子(一)
- 有效编写软件的75条建议
- 灵活使用Hibernate的查询对象DetachedCriteria
- 界面设计中的一些心得