| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1539 人关注过本帖
标题:请求各位老师修改程序
只看楼主 加入收藏
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:796
专家分:70
注 册:2020-2-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
请求各位老师修改程序
如下程序当输入10^15以上的数时,输出结果为科学记数法,要求改为输出整数部分,且不用科学记数法的整数。

Private Sub Command1_Click()
Dim a, b, c
a = Trim(Text1)

b = Sqr(a)
c = a / Log(a)
If a > 10 ^ 25 Then
a1 = Log(a) / Log(10)
b3 = (1.74136140824861 ^ ((1.06415 * Exp(-0.00175 * (a1 - 0.65 * (a1 - 21)))) ^ a1)) ^ a1
c = (a + (b3 + 4) * b) / Log(a)
ElseIf a > 10000000 Then
a1 = Log(a) / Log(10)
b2 = Exp(1.033 * a1)
b1 = 0.159 * b2
b4 = (1.74136140824861 ^ (1.8 * a1)) / 4.9
b5 = (b1 + b4) / 2
c = (a + (b5 + 4) * b) / Log(a)
ElseIf a >= 10000 Then
a1 = Log(a) / Log(10)
b3 = (56 * a1 ^ 3 - 741 * a1 ^ 2 + 3367 * a1 - 5142) / 6
c = (a + (b3 + 4) * b) / Log(a)
ElseIf a >= 1000 Then
c = (a + 4 * b) / Log(a)
ElseIf a >= 500 Then
c = (a + 2 * b) / Log(a)
ElseIf a >= 100 Then
c = (a + b) / Log(a)
Else
c = c
End If
d = a / c
d1 = a - Int(d)
c1 = a & "内的素数个数下限为 " & Int(c)
Text2 = Text2 & c1 & vbCrLf
Text3 = d1
End Sub

Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
End Sub
搜索更多相关主题的帖子: Then 老师 Sub 请求 修改 
2020-06-30 12:02
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:14 
没去跑你程序,如果仅仅是最后的显示结果不要使用科学计数法显示的话,你参考下面的三行代码吧

Dim i As Double
i = 1.25498745974E+16
Text1.Text = Format(i, "#")          'format 返回是字符串


授人于鱼,不如授人于渔
早已停用QQ了
2020-06-30 16:12
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:796
专家分:70
注 册:2020-2-10
收藏
得分:0 
还是不行?
输入100000000000000000内(即10^17内)的素数个数下限为 2.60123767067574E+15,
而1000000000000000内(即10^15内)的素数个数下限为 29641490792455,
10000000000000000内(即10^16内)的素数个数下限为 277084362658476。
2020-07-01 22:42
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:796
专家分:70
注 册:2020-2-10
收藏
得分:0 
这回行了,只是末尾都是0,可能精确度达不到?如下为程序结果和代码:
输入10000000000000000000000000内(即10^25内)的素数个数下限为 174823176693378000000000,
代码:
Private Sub Command1_Click()
Dim a, b
Dim c As Double
a = Trim(Text1)
b = Sqr(a)
c = a / Log(a)
If a > 10000000 Then
a1 = Log(a) / Log(10)
b2 = Exp(1.033 * a1)
b1 = 0.159 * b2
b4 = (1.74136140824861 ^ (1.8 * a1)) / 4.9
b5 = (b1 + b4) / 2
c = (a + (b5 + 4) * b) / Log(a)
ElseIf a >= 10000 Then
a1 = Log(a) / Log(10)
b3 = (56 * a1 ^ 3 - 741 * a1 ^ 2 + 3367 * a1 - 5142) / 6
c = (a + (b3 + 4) * b) / Log(a)
ElseIf a >= 1000 Then
c = (a + 4 * b) / Log(a)
ElseIf a >= 500 Then
c = (a + 2 * b) / Log(a)
ElseIf a >= 100 Then
c = (a + b) / Log(a)
Else
c = c
End If
d = a / c
d1 = a - Int(d)
c1 = a & "内的素数个数下限为 " & Format(c, "#")
Text2 = c1
Text3 = d1
End Sub

Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
End Sub



谢谢老师!结帖,给你打赏!


[此贴子已经被作者于2020-7-1 23:02编辑过]

2020-07-01 22:57
快速回复:请求各位老师修改程序
数据加载中...
 
   



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

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