Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 19738|回复: 59

[VBA接力赛第1期]真分数[已总结]

[复制链接]
发表于 2007-3-12 17:29 | 显示全部楼层 |阅读模式
<p><img src="data/attachment/forum/dvbbs/2007-3/20073121728356772.jpg" border="0" onclick="zoom(this)" onload="if(this.width>document.body.clientWidth*0.5) {this.resized=true;this.width=document.body.clientWidth*0.5;this.style.cursor='pointer';} else {this.onclick=null}" alt="" /><br/><br/>VBA竞赛题不难出,虽然出不好,还是希望先运行起来。我来开个头。下面这道题不难,但要想让速度快起来就要关注很多细节,我现在写的代码就运行很慢,呵呵。言归正传:<br/><strong>题目要求:<br/></strong>1.在B1单元格输入一整数(约定2-300之间),在A列从小到大显示分母小于或等于该整数的所有不可约的真分数。<br/>2.代码需要必要的注释。<br/>呵呵,比较简单吧,就不上传统一的答题模板了,大家自己建一个吧。<br/><strong>评价标准:</strong><br/>以后出题是否事前给出评价规则由出题者定。<br/>首期评价标准为,在代码正确的基础的上,以运行速度为第一评价要素。<br/>参见:<a href="http://www.excelpx.com/forum.php?mod=viewthread&tid=13415">http://www.excelpx.com/forum.php?mod=viewthread&tid=13415</a><br/><strong>答题方式:</strong><br/>答题请以“VBA接力赛第一期”主题邮件发往<a href="mailto:qeeyong@126.com">qeeyong@126.com</a>,并写明论坛ID,为不影响版主参赛:),请不要在论坛上传答案。停止接收时间为3月19日0:00。收到答案我会及时在楼下发布通告。发送多次的以最后一次为准。<br/></p>
[此贴子已经被作者于2007-3-19 0:31:45编辑过]
 楼主| 发表于 2007-3-12 23:24 | 显示全部楼层

<p>截止3月12日23:00收到答案1份:</p><p>戏子(3-12 21:41)</p><p>-------------------------</p><p>戏兄的动作好快啊.从戏兄的答题看,忽略了两点要求,这也怪我,是我图中的要求和表述的要求不太一致.图是先做的,发贴时发现有问题又偷懒不想重新录图.现在强调说明一下这两点要求:</p><p>1.结果全部是不可约的分数,即分子分母互质.如2/4可以约为1/2,即不符合结果条件.</p><p>2.对所有的符合条件的结果要从小到大进行排序,如图示:当N=6时,所有符合条件的分数从小到大为1/6&lt;1/5&lt;1/4&lt;1/3&lt;2/5&lt;1/2&lt;3/5&lt;2/3&lt;3/4&lt;4/5&lt;5/6,从A1顺序显示在A列.</p>
回复

使用道具 举报

 楼主| 发表于 2007-3-12 23:41 | 显示全部楼层

<p>大家有不清楚的可以跟贴提出.</p><p>这虽然是一道数学题,但涉及的数学知识应是我们都比较熟悉的.先写个代码雏形然后再改进提速,是很有意思的事.从改进的过程可以锻炼我们对VBA基本知识的掌握.我最初的代码N=300时,在我DURON700/256M的老爷机上运行约29秒多,小修小改后,现在的速度嘛...哈,提高了可多倍了.</p>
回复

使用道具 举报

发表于 2007-3-13 08:29 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>qee用</i>在2007-3-12 23:24:58的发言:</b><br/><p>截止3月12日23:00收到答案1份:</p><p>戏子(3-12 21:41)</p><p>-------------------------</p><p>戏兄的动作好快啊.从戏兄的答题看,忽略了两点要求,这也怪我,是我图中的要求和表述的要求不太一致.图是先做的,发贴时发现有问题又偷懒不想重新录图.现在强调说明一下这两点要求:</p><p>1.结果全部是不可约的分数,即分子分母互质.如2/4可以约为1/2,即不符合结果条件.</p><p>2.对所有的符合条件的结果要从小到大进行排序,如图示:当N=6时,所有符合条件的分数从小到大为1/6&lt;1/5&lt;1/4&lt;1/3&lt;2/5&lt;1/2&lt;3/5&lt;2/3&lt;3/4&lt;4/5&lt;5/6,从A1顺序显示在A列.</p></div><p>汗~~因为急要出门,我并没有去认真仔细看用兄的要求,花了五分钟时间做完了,回来时躺在床上才想起,不会这么简单吧</p>[em04][em04]
回复

使用道具 举报

发表于 2007-3-13 21:58 | 显示全部楼层

<p>做对容易,做好难.</p>[em04]
回复

使用道具 举报

 楼主| 发表于 2007-3-13 22:51 | 显示全部楼层

<p>截止3月13日22:30分,收到答案2份:</p><p>戏子 3-13 19:47</p><p>bifengxia 3-13 21:55</p><p>--------------------------</p><p>戏兄答案仍不正确,请检查.</p><p>笔兄答案正确,如意犹未尽,可以在结题前考虑一下速度有无优化空间,呵呵.</p>
回复

使用道具 举报

 楼主| 发表于 2007-3-13 23:00 | 显示全部楼层

<p>补充一下:</p><p>A列显示结果可以"文本"显示,也可以"分数"显示,或以其它可能的方式显示,允许在A列预定义格式.只要结果看上去是分数的形式即可.</p>
回复

使用道具 举报

发表于 2007-3-14 17:07 | 显示全部楼层

怎么看不到代码?
回复

使用道具 举报

发表于 2007-3-14 20:17 | 显示全部楼层

<p>能不能对只要参加,并答案正确的,都给予一定的工分呀,这样积极性才高嘛!速度对我来说,要求高了点!</p><p>我是贫民,我要挣工分!!</p><p>[em04]</p><p><font color="#2222aa">奖励8个金币</font></p>
[此贴子已经被qee用于2007-3-19 10:40:40编辑过]
回复

使用道具 举报

 楼主| 发表于 2007-3-14 22:21 | 显示全部楼层

<p>截止3月14日22:00收到收到3份答案:</p><p>戏子 3-13 19:47</p><p>bifengxia 3-13 21:55</p><p>lpz001 3-14 20:45</p><p>-------------------------</p><p>
能不能对只要参加,并答案正确的,都给予一定的工分呀,这样积极性才高嘛!速度对我来说,要求高了点!<br/>我是贫民,我要挣工分!!
</p><p>您的答案结果正确.</p><p>对您的建议我会考虑.</p><p></p>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-7 13:16 , Processed in 0.379505 second(s), 5 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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