| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12744 人关注过本帖
标题:PK赛第一期[N!连加][级别:中级](考虑期末考试,延期至7月21日结束)
只看楼主 加入收藏
ouzhiguang
Rank: 1
来 自:湖南长沙
等 级:新手上路
威 望:1
帖 子:240
专家分:0
注 册:2007-5-18
收藏
得分:0 
看样子楼主就是这样子做的,不知道我的电脑抗得住不?计算200!之和要多少时间啊
2007-06-19 20:42
ouzhiguang
Rank: 1
来 自:湖南长沙
等 级:新手上路
威 望:1
帖 子:240
专家分:0
注 册:2007-5-18
收藏
得分:0 
试了一下,上面的方法行不通...呵呵
2007-06-19 20:56
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 
N=1000时大概需要用0.41秒。
N=10000时大约要用1分钟左右。

计算公式:1! + 2! + 3! + 4! + 5! +...+ 10000!
开始时间:21:33:06
结束时间:21:34:03
总计耗时:56.45
计算结果:…………


把我自己做的一个示例传上来,大家可以试试。也帮我测试测试有没有BUG。由于当N>10000时耗时较长,所以限定了N最大为10000,实际N最大能取多大的数我自己也没有测试过。

[attach]23312[/attach]


最后,希望大家都能踊跃参加,就算不能做出来,但我相信只要自己去试,就会发现得到的肯定会比付出的多。


[此贴子已经被作者于2007-6-30 13:32:11编辑过]



XDpS8Av8.rar (8.95 KB)

VB QQ群:47715789
2007-06-19 21:16
keikii
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-18
收藏
得分:0 

速度很快,版主厉害的

2007-06-21 16:38
xz3501
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-5-12
收藏
得分:0 
回复:(Joforn)PK赛第一期[N!连加][级别:中级]

你们看怎么样?我刚学VB
Nk0UW5Ve.rar (3.96 KB) 回复:(Joforn)PK赛第一期[N!连加][级别:中级]


[此贴子已经被作者于2007-6-21 19:19:33编辑过]



wNMR4a55.rar (3.97 KB) PK赛第一期[N!连加][级别:中级]


2007-06-21 19:17
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 
回复:(xz3501)回复:(Joforn)PK赛第一期[N!连加...
注意:1、上传参赛作品时只要发EXE文档跟帖即可,源码请发送至1楼的Email地址就行了;
   2、所以参赛作品请自行检查BUG;
  
楼上的代码以经看过,不过还有几处BUG待修改:
1、输出方式不符合要求;
2、N>170时肯定会出现溢出错误。

不过精神可表,我相信,稍加努力,就会成功的
加油!!!! 

[此贴子已经被作者于2007-6-24 8:51:53编辑过]


VB QQ群:47715789
2007-06-21 21:31
lhz917
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-6-22
收藏
得分:0 
应该可以做出来的,好久没碰VB了。。。
先把VB装上,再研究研究
2007-06-23 11:02
Benison
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-23
收藏
得分:0 
[讨论]
以下是引用Joforn在2007-6-21 21:31:36的发言:
注意:1、上传参赛作品时只要发EXE文档跟帖即可,源码请发送至1楼的Email地址就行了;
   2、所以参赛作品请自行检查BUG;
  
楼上的代码以经看过,不过还有几处BUG待修改:
1、输出方式不符合要求;
2、所求之值只是一个数的接1乘;
3、大于170时出现错误。

不过精神可表,我相信,稍加努力,就会成功的
加油!!!! 

如何解决 当 n>170 时的溢出,以及如何把结果变为连串的数字;还有上面第二个问题是什么意思?

Private Sub Form_click()
n = InputBox("input n")
s = 1
x = 1
If n - 1 > 0 Then
For i = 1 To n - 1
s = (i + 1) * s
x = x + s
Next i
End If
Print x
End Sub


2007-06-23 23:29
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 
以下是引用Benison在2007-6-23 23:29:28的发言:

如何解决 当 n>170 时的溢出,以及如何把结果变为连串的数字;还有上面第二个问题是什么意思?

Private Sub Form_click()
n = InputBox("input n")
s = 1
x = 1
If n - 1 > 0 Then
For i = 1 To n - 1
s = (i + 1) * s
x = x + s
Next i
End If
Print x
End Sub

如何解决N>170时的溢出,这正是各位要考虑的问题。


VB QQ群:47715789
2007-06-24 08:49
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
收藏
得分:0 

斑竹,你的程序精确度太差了。虽然速度很快。但是你的程序算到21!就开始错了,不信你看看。
正确的1! + 2! + 3! + 4! + 5! +...+ 20!=2,561,327,494,111,820,313
而21!=51,090,942,171,709,400,000
你的程序算1! + 2! + 3! + 4! + 5! +...+ 21!=53,652,269,665,821,260,313 多出了40000。
在21的时候就有这么大的误差。那到后面误差不是更大?
我说怎么跟我程序算出来的总是不一样。


[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-06-26 10:49
快速回复:PK赛第一期[N!连加][级别:中级](考虑期末考试,延期至7月21日结束)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034142 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved