找回密码

碧海潮声大学生网

查看: 2015|回复: 11
打印 上一主题 下一主题

给大家一道程序题目做做

[复制链接]
该用户已被删除
跳转到指定楼层
1#
发表于 2005-5-26 22:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩
2#
发表于 2005-5-27 07:50 | 只看该作者
<P>最常规的作法:</P>
<DIV class=quote>
<P>.子程序 __启动窗口_创建完毕</P>
<P>求深1 (10, 2, 1)<br>求深1 (20, 3, 1)</P>
<P><br>.子程序 求深1<br>.参数 n, 整数型<br>.参数 u, 整数型<br>.参数 d, 整数型<br>.局部变量 t, 整数型</P>
<P>.如果真 (n ≥ u 且 n ≤ 100)  ' 判断条件<br>    .判断循环首 (n > 0)  ' 当总长度还是为0时进行循环<br>        n = n - u<br>        t = t + 1<br>        .如果真 (n > 0)  ' 未到地面<br>            n = n + d<br>            t = t + 1<br>        .如果真结束</P>
<P>    .判断循环尾 ()<br>    输出调试文本 (t)<br>.如果真结束</P></DIV>
<P>最后的输出是:</P>
<DIV class=quote>* 17<br>* 19<br></DIV>

[此贴子已经被作者于2005-5-27 7:50:56编辑过]
3#
发表于 2005-5-27 08:04 | 只看该作者

方法2

<DIV class=quote>
<P>.子程序 __启动窗口_创建完毕</P>
<P>求深1 (10, 2, 1)<BR>求深1 (20, 3, 1)<BR>求深2 (10, 2, 1)<BR>求深2 (20, 3, 1)</P>

<P>.子程序 求深1<BR>.参数 n, 整数型<BR>.参数 u, 整数型<BR>.参数 d, 整数型<BR>.局部变量 t, 整数型</P>
<P>.如果真 (n ≥ u 且 n ≤ 100)  ' 判断条件<BR>    .判断循环首 (n > 0)  ' 当总长度还是为0时进行循环<BR>        n = n - u<BR>        t = t + 1<BR>        .如果真 (n > 0)  ' 未到地面<BR>            n = n + d<BR>            t = t + 1<BR>        .如果真结束</P>
<P>    .判断循环尾 ()<BR>    输出调试文本 (t)<BR>.如果真结束</P>
<P><BR>.子程序 求深2<BR>.参数 n, 整数型<BR>.参数 u, 整数型<BR>.参数 d, 整数型<BR>.局部变量 t, 小数型</P>
<P>.如果真 (n ≥ u 且 n ≤ 100)  ' 判断条件<BR>    ' 设滑过的时间是t,则向上的时间为t+1,则<BR>    ' n=u*(t+1)-d*t<BR>    ' 所以t=(n-u)/(u-d)<BR>    ' T=2t+1<BR>    t = (n - u) ÷ (u - d)<BR>    .如果真 (t ≠ 四舍五入 (t, 0))  ' 如果t不是整数,则取大于此数的整数<BR>        t = 取整 (t) + 1<BR>    .如果真结束<BR>    t = 2 × t + 1<BR>    输出调试文本 (t)<BR>.如果真结束</P></DIV>

<P>正在编译现行易程序...<BR>正在预处理现行易程序...<BR>正在进行名称连接...<BR>正在统计需要编译的子程序<BR>正在编译“窗口程序集1”中的“__启动窗口_创建完毕”子程序<BR>正在编译“窗口程序集1”中的“求深1”子程序<BR>正在编译“窗口程序集1”中的“求深2”子程序<BR>正在生成主程序入口代码<BR>程序代码编译成功<BR>正在封装易格式目的代码<BR>开始运行被调试易程序<BR>* 17<BR>* 19<BR>* 17<BR>* 19<BR>被调试易程序运行完毕</P>
该用户已被删除
4#
 楼主| 发表于 2005-5-27 15:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
该用户已被删除
5#
 楼主| 发表于 2005-5-27 16:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
6#
发表于 2005-5-27 17:27 | 只看该作者
<DIV class=quote><B>以下是引用<I>枫</I>在2005-5-27 15:45:01的发言:</B><BR>
<P>笨笨,真佩服你写伪代码的技术,让人看了一目了然。</P></DIV>
<P>老实说,这不是伪代码。这是<STRONG>易语言</STRONG>的文本型代码,在IDE中查看是这个样子的。看帖图。

<P><BR></P>
<BR>

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
发表于 2005-5-27 17:31 | 只看该作者
<DIV class=quote><B>以下是引用<I>枫</I>在2005-5-27 16:00:00的发言:</B><BR>
<P>我的算法和你不同,不过好像还你的算法好</P>
<P>以下是我用C++编写的一段代码</P>
<P>******************程序开始*****************************</P>
<P>#include <iostream.h></P>
<P>int main()<BR>{<BR>int n,u,d,climbs,minute;<BR>cin>>n;cin>>u;cin>>d;<BR>while(!(!n&&!u&&!d))<BR>{<BR>  climbs=0;minute=0;<BR>  while(1)<BR>  {<BR>   if(minute%2==0)<BR>   { climbs=climbs+u;minute++;<BR>    if(climbs>=n) break;<BR>   }<BR>   else<BR>   { climbs=climbs-d;minute++;<BR>   }<BR>  }<BR>  cout<<minute<<endl;<BR>  cin>>n;cin>>u;cin>>d;<BR>}</P>
<P>return 1;<BR>}</P>
<P>******************程序结束*****************************</P>
<P>我没有对n,u,d范围进行限制是因为ACM JudgeOnline系统提供的测试用例都是不会超过这个范围的。呵呵!</P></DIV>
<P>你是通过判断是第几分钟来判断是上升还是下降,这样判断的次数增加了(%的次数),呵呵,个人感觉,我的第二种算法是我所想到的最优算法了。第一种算法是较常规的算法,不过好像也比你的这个算法次数少</P>
该用户已被删除
8#
 楼主| 发表于 2005-5-27 18:07 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
该用户已被删除
9#
 楼主| 发表于 2005-5-27 18:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
10#
发表于 2005-5-27 22:21 | 只看该作者
<P><a href="http://www.dywt.com.cn" target="_blank" >http://www.dywt.com.cn</A></P>
<P>纯中文的内核,汉语编程中目前我看来是最强的一个,还有一个中蟒也不错,不过重在算法,简易上比不上易</P>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋| 碧海潮声大学生网  

Copyright © 2001-2013 Comsenz Inc.   All Rights Reserved.

Powered by Discuz! X3.2( 浙ICP备11026473号 )

快速回复 返回顶部 返回列表