请稍候...
您现在的位置: 中华信息学竞赛网  >> 每日一练

【每日一练·总第十五期】提高组第四期

发布日期:2008-8-9
浏览次数:1365
本资料需要注册并登录后才能下载!
·用户名  密码   验证码 点击获取新的验证码   找回密码
·您还未注册?请注册
您的账户余额为元,余额已不足,请充值
您的账户余额为元。此购买将从您的账户中扣除费用0.0元。
内容介绍>>
【问题描述】
  栈是常用的一种数据结构,有n令元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。你已经知道栈的操作有两•种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。现在要使用这两种操作,由一个操作序列可以得到一系列的输出序列。请你编程求出对于给定的n,计算并输出由操作数序列1,2,…,n,经过一系列操作可能得到的输出序列总数。
  【输入】
    一个整数n(1<=n<=15)
  【输出】
    一个整数,即可能输出序列的总数目。
  【样例】
    stack1.in             stack1.out
    3                    5
 
(解题报告、测试数据下期见)
 
普及组第四期答案
【算法】用辗转相除法
【参考程序】
      var m,n,r,t:integer;
      begin
         writeln('input m,n');
         readln(m,n);
         if (n<=0) or (m<=0) then begin writeln('error!');halt;end;
         if m         r:=m mod n;  {r:余数}
         while r<>0 do begin
            m:=n;
            n:=r;
            r:=m mod n;
         end;
         writeln('yu shu:',n);
      end
  
  
 共有 0 条评论 (查看更多评论内容
客服热线:010-62029238 QQ咨询:564948255 QQ投诉/建议:393863190
中华信息学竞赛网 版权所有 2007-2009 www.100xinxi.com All rights reserved. 京ICP备09054306号