`
bliuqing
  • 浏览: 64973 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

转载:http://bbs1.chinaunix.net/thread-1640178-1-1.html

阅读更多
转载:http://bbs1.chinaunix.net/thread-1640178-1-1.html
有一个人站在电影院门口卖票,票价50,一开始手上没有找零的钱,
现在有两种人来买票,A拿着100元的钱,人数为m(m<20),B拿着50元的钱,
人数为n(n<20)。卖票的人必须用从B类人中那里得来钱找给A,所以卖票
的顺序是有限制的。
要求写一个程序打印出所有的买票序列:

例如:m =2 ,n = 3;

BABAB
BBAAB
BBBAA
BBABA
#################################
   1. #include <stdio.h>
   2. char str[500];
   3. int n, m;
   4. void oper(int a, int b,int m, int n)
   5. {
   6.         if (a + b == m + n)
   7.                 printf("%s\n", str);
   8.         else {
   9.                 if (a < m && a < b) {
  10.                         str[a + b] = 'A';
  11.                         oper(a + 1, b, m, n);
  12.                 }
  13.                 if (b < n) {
  14.                         str[a + b] = 'B';
  15.                         oper(a, b + 1, m, n);
  16.                 }
  17.         }
  18. }
  19. int main()
  20. {
  21.         while (scanf("%d%d", &m, &n) == 2)
  22.         {
  23.                 if (n < 0 || m < 0 || m > n)
  24.                         printf("No result!\n");
  25.                 else {
  26.                         str[m + n] = 0;
  27.                         oper(0, 0, m, n);
  28.                 }
  29.         }
  30.         return 0;
  31. }

##########实际上求组合############,再判断条件。
#include <stdio.h>
char str[500];
int n, m;
void oper(int a, int b,int m, int n)
{
         if (a + b == m + n)
                 printf("%s\n", str);
         /*else {
                 if (a < m && a < b) {
                         str[a + b] = 'A';
                         oper(a + 1, b, m, n);
                 }
                 if (b < n) {
                         str[a + b] = 'B';
                         oper(a, b + 1, m, n);
                 }
         }*/
        if (a < m){
        str[a + b] = 'A';
        oper(a + 1, b, m, n);
        }
        if (b < n){
        str[a + b] = 'B';
        oper(a, b + 1, m, n);
        }

}


int main()
{
         while (scanf("%d%d", &m, &n) == 2)
         {
                 if (n < 0 || m < 0 || m > n)
                         printf("No result!\n");
                 else {
                         str[m + n] = 0;
                         oper(0, 0, m, n);
                 }
         }
        return 0;
}

分享到:
评论

相关推荐

    开源时代(1-10)

    由于文件太大,分两部分:...http://linux.chinaunix.net/bbs/attachment.php?aid=214186 《开源时代》2008.10(第二期) http://linux.chinaunix.net/bbs/attachment.php?aid=219853 《开源时代》2008.11(第三期) ...

    开源时代(11-16)

    这是第十一期到第十六期,...http://linux.chinaunix.net/bbs/attachment.php?aid=214186 《开源时代》2008.10(第二期) http://linux.chinaunix.net/bbs/attachment.php?aid=219853 《开源时代》2008.11(第三期) ...

    蓝牙串口聊天

    参考博文创建,详细解释参考:http://blog.chinaunix.net/uid-7552018-id-173419.html 3.安卓3.0以上使用自定义title时要注销默认title,详细参考:...

    URLTester

    URLTester是一个URL测试工具,最主要的一个特色是:当一个域名对应... 网址:http://blog.chinaunix.net/u2/64804/showart_1132881.html&lt;br&gt;下载:http://blogimg.chinaunix.net/blog/upfile2/080818094844.zip&lt;br&gt;

    Linux上用udev自动识别并挂载U盘

    根据网上了解,可以通过udev来实现U盘的自动识别和挂载,操作方法...http://blog.chinaunix.net/uid-26119896-id-5211736.html (u盘挂载) http://www.cnblogs.com/sopost/archive/2013/01/09/2853200.html (udev简介)

    IOMSV1.10_alpha版本程序包1/3

    个人技术网站:http://hawkli.blog.chinaunix.net IOMS源站点: http://code.google.com/p/ioms/ IOMS全称为Integrated Operation Management System集中运维管理系统,是一个类似于Fedora统一网络控制器FUNC这样的...

    libjpeg.so.62.0.0.rar

    小程序在:http://blog.chinaunix.net/u3/93660/showart_1860238.html 1、交叉编译: #arm-linux-gcc test.c -o test -I /usr/local/arm/3.4.1/arm-linux/include -L /usr/local/arm/3.4.1/arm-linux/lib 2、将...

    dos下的win31图形界面基础组件源程序

    http://bbs.chinaunix.net/viewthread.php?tid=942230 源代码下载:http://www.cn-dos.net/forum/atta ... c12e&download=1 https://gro.clinux.org/frs/download.php/2035/giCell_20070713.rar 演示下载:...

    CSocket 聊天室源码(不使用派生类)(VS2013)

    不过网上有一篇流传很广的文章(http://blog.chinaunix.net/uid-20743151-id-326359.html),里面有一句“CSocket经常不用派生就可以直接使用”,这个程序演示了这种用法。代码已使用 Visual Studio 2013 调试编译...

    IOMSV1.10_alpha程序包2/3

    个人技术网站:http://hawkli.blog.chinaunix.net IOMS源站点: http://code.google.com/p/ioms/ IOMS全称为Integrated Operation Management System集中运维管理系统,是一个类似于Fedora统一网络控制器FUNC这样的...

    IOMSV1.10_alpha程序包3/3

    个人技术网站:http://hawkli.blog.chinaunix.net IOMS源站点: http://code.google.com/p/ioms/ IOMS全称为Integrated Operation Management System集中运维管理系统,是一个类似于Fedora统一网络控制器FUNC这样的...

    Linux JDK 、 TOMCAT 安装

    http://download.chinaunix.net/download/0001000/61.shtml 下载jdk安装文件jdk-1_5_0_16-linux-i586.bin 2. 更改权限设置() 通过# chmod +x jdk-1_5_0_16-linux-i586.bin命令使其获得可执行权限 2 . 解压...

    CopyPath v1.0, Copy paths of the selected files, (新增右键支持复制多文件路径)

    http://blog.chinaunix.net/u/8754/showart_1961481.html Important Notice: Althouth there are no malicious codes included, I do not issue any guarantee of any kind, use it at your own risk!

    详解python3中用HTMLTestRunner.py报ImportError: No module named ‘StringIO’如何解决

    参考:http://bbs.chinaunix.net/thread-4154743-1-1.html 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 修改后下载地址:HTMLTestRunner_jb51.rar (懒人直接下载吧) 2.修改汇总: 第94行,将...

    Linux内核加密框架设计与实现-书签版

    特此感谢 独孤九贱的原创,链接:http://bbs.chinaunix.net/thread-3627341-1-1.html

    Oracle数据库监控、性能检查小工具(OPCT)

    软件功能: 1.查询Oracle实例名、状态、版本等 2.Oracle连接数 3.SGA信息 4.PGA信息 5.数据库使用 6.表空间使用情况 7.临时文件信息 ...使用说明详细见:http://blog.chinaunix.net/uid-765492-id-3380917.html

    MFC 多个客户端和服务端通信

    VS2008可以运行,多个客户端与服务端通信,针对某一个客户端通信,客户端也可以进行回复服务端

    Huffman编码的C++实现

    Huffman编码的C++实现 转载自: http://blog.chinaunix.net/uid-20546521-id-1927625.html

Global site tag (gtag.js) - Google Analytics