VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 16836|回复: 139

擂台第 65 期 [数值条件累加]

[复制链接]
 楼主| 发表于 2010-9-11 00:30:49 | 显示全部楼层 |阅读模式
本帖最后由 PctGL 于 2010-9-26 22:02 编辑

开一期新擂台赛
前些日子做过的小题目,  权当是新擂台赛给大家的暖手之作...


题目很简单:

   计算 0 ~ &HFFFFFFFF (即4字节无符号整数的最大值)  范围内

   所有不含 4, 7 这两个数字的值的总和.


例子: 1 ~ 20 中,
计算 1+2+3+5+6+8+9+10+11+12+13+15+16+18+19+20 的总和

    看谁的快!


请参赛者在跟贴中只附上可执行文件。定稿后将源代码发到
擂台专用信箱:
arena@vbgood.com
文件及源码文件名格式:用户名_第几期_第几组_版本.rar
由于此信箱垃圾邮件太多,请在发信时一定写明主题。并且记住一定要带上附件!


截稿日期... 未定... 可能很快,也可能2周之后......
这期主要是看看大家还有没有热情参加擂台.
发表于 2010-9-11 07:07:10 | 显示全部楼层
本帖最后由 仙剑魔 于 2010-9-11 08:27 编辑

庆祝擂台重开,特来围观:)
这题用VB6不好弄啊。。。
我得好好想想。。。

===============================
华丽的分割线。。。
===============================
我推出公式了。。。

求大哥判定结果是否正确。。。
顺便测试下隐藏内容斑竹是否可见。。。
游客,本帖隐藏的内容需要积分高于 999 才可浏览,您当前积分为 0
回复 支持 反对

使用道具 举报

发表于 2010-9-11 08:58:08 | 显示全部楼层
如果我来做的话,应该是for next + if ,sum=sum+x 。
哈哈。。速度第一(倒数)

纯凑热闹。
回复 支持 反对

使用道具 举报

发表于 2010-9-11 09:31:05 | 显示全部楼层
本帖最后由 Igawk 于 2010-9-11 09:33 编辑

不过滤的结果是:9223372034707292160
比2楼的略大,说明2楼的结果可能是正确的。
回复 支持 反对

使用道具 举报

发表于 2010-9-11 10:40:11 | 显示全部楼层
直接输答案算不算?
回复 支持 反对

使用道具 举报

发表于 2010-9-11 10:50:40 | 显示全部楼层
来一个速度倒数第零的,Mathematica:

In[10]:= n=0;For[i=1,i<=4294967295,i++, n+=If[StringCount[ToString[i],{"4","7"}]==0,i,0];];n
Out[10]= $Aborted

看输出就知道了……
回复 支持 反对

使用道具 举报

发表于 2010-9-11 10:53:58 | 显示全部楼层
馊主意来了:按个位、十位、百位……分别累加,这样二重循环就解决了,运行次数不超过1000次……
回复 支持 反对

使用道具 举报

发表于 2010-9-11 13:56:16 | 显示全部楼层
本帖最后由 VBProFan 于 2010-9-11 14:08 编辑

时间过得真快,上一期居然已经是一年前的事情了,那个图灵测试还历历在目,确实是好题目啊~~ 至少我喜欢~

嗯,不错,这期的是练习汇编的好题目……

“顺便测试下隐藏内容斑竹是否可见。。。”
不可见,鉴定完毕。

算法二:逆向思维。只计算所有含 4, 7 这两个数字的值的总和。用等差数列求和公式算出总和再减去之前的那个和

不过话说所有含 4, 7 这两个数字的数也不好找 既不能重复也不能遗漏…… 当然不能用遍历法,太慢了,要用组合法……

评分

参与人数 1人气 +3 收起 理由
410023425 + 3 确实,逆向思维,看了以后恍然大悟。

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2010-9-11 14:06:24 | 显示全部楼层
来一个速度倒数第零的,Mathematica:

In[10]:= n=0;For,{"4","7"}]==0,i,0];];n
Out[10]= $Aborted

看输出就知道了……
acme_pjz 发表于 2010-9-11 10:50


话说这个为什么会输出 $Aborted ?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-11 14:20:56 | 显示全部楼层
这题的计算过程用一个小函数就能解决,写不了几句代码,不过运行结果可能要等至少几秒之后
才能算出来

计算结果... 我还真不知道呢, 我之前做的是 1 ~ 9个9, 9e+,  我出题的时候干脆就直接来个 4G,
所以具体答案我还得把原来写的计算过程再写一遍才能知道结果

有兴趣的话,大家集体讨论也没关系, 题目确实很简单, 主要是看考验你的逻辑思维能力,也许一个灵光闪现,你就能想出一个最快的算法来
回复 支持 反对

使用道具 举报

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

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2020-7-11 18:18

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表