| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1076 人关注过本帖
标题:把 1/a 拆分成三个不同单位分数的和,并且三个分母之和为最小的VB程序
只看楼主 加入收藏
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:884
专家分:77
注 册:2020-2-10
结帖率:100%
收藏
 问题点数:0 回复次数:5 
把 1/a 拆分成三个不同单位分数的和,并且三个分母之和为最小的VB程序
Private Sub Command1_Click()
'把 1/a 拆分成三个不同单位分数的和,并且三个分母之和为最小的程序代码
Dim n, a As Double
n = Val(Text1)
m = Val(11 * n)
a = Val(1 + n)
Do While a >= Val(n) And a <= 5 * n
b = Val(a + 1)


Do While b <= Val(6 * n)


u = Val(a * b * n)
v = Val(a * b - n * (a + b))
If Val(v) > 0 Then
c = Val(u / v)

If b < c And Val(u) - Val(v) * Int(Val(u / v)) = 0 Then
k = Val(a + b + c)
If k <= m Then
m = k
s = "{" & a & "," & b & "," & c & "}"
s2 = n & "  " & m & "  " & s & vbCrLf
s3 = s3 + 1
End If
End If
End If

b = Val(b + 1)
Loop


a = Val(a + 1)
Loop
If s3 > 0 Then
Text2 = s2 & "需要比较的解的个数为: " & s3 & "组"
Else
Text2 = "无解"
End If


End Sub


Private Sub Command2_Click()
Text1 = ""
Text2 = ""
End Sub
搜索更多相关主题的帖子: 拆分 If 最小 Then End 
2026-01-19 22:22
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:884
专家分:77
注 册:2020-2-10
收藏
得分:0 
1  11  {2,3,6}
需要比较的解的个数为: 1组

2  22  {4,6,12}
需要比较的解的个数为: 1组

3  31  {6,10,15}
需要比较的解的个数为: 2组

4  37  {10,12,15}
需要比较的解的个数为: 3组

5  47  {12,15,20}
需要比较的解的个数为: 2组

……………………

100  905  {275,300,330}
需要比较的解的个数为: 15组
2026-01-19 22:25
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:884
专家分:77
注 册:2020-2-10
收藏
得分:0 
Private Sub Command1_Click()
'把 1/a 拆分成三个不同单位分数的和,并且三个分母之和小于某整数的程序代码
Dim n, a As Double
n = Val(Text1)
m = Val(Text2)
a = Val(1 + n)
Do While a >= Val(n) And a <= 5 * n
b = Val(a + 1)


Do While b <= Val(6 * n)


u = Val(a * b * n)
v = Val(a * b - n * (a + b))
If Val(v) > 0 Then
c = Val(u / v)

If b < c And Val(u) - Val(v) * Int(Val(u / v)) = 0 Then
k = Val(a + b + c)
If k <= m Then
s = "{" & a & "," & b & "," & c & "}"
s2 = s2 & n & "  " & k & "  " & s & vbCrLf
s3 = s3 + 1
End If
End If
End If

b = Val(b + 1)
Loop


a = Val(a + 1)
Loop
If s3 > 0 Then
Text3 = s2 & "解的个数为: " & s3 & "组"
Else
Text3 = "无解"
End If


End Sub


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

2026-01-19 22:34
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:884
专家分:77
注 册:2020-2-10
收藏
得分:0 
举例:
输入:1和500
输出:
1  11  {2,3,6}
解的个数为: 1组

输入:2和600
输出:
2  52  {3,7,42}
2  35  {3,8,24}
2  30  {3,9,18}
2  28  {3,10,15}
2  29  {4,5,20}
2  22  {4,6,12}
解的个数为: 6组

输入:3和700
输出:
3  173  {4,13,156}
3  102  {4,14,84}
3  79  {4,15,60}
3  68  {4,16,48}
3  58  {4,18,36}
3  133  {5,8,120}
3  59  {5,9,45}
3  45  {5,10,30}
3  37  {5,12,20}
3  55  {6,7,42}
3  38  {6,8,24}
3  33  {6,9,18}
3  31  {6,10,15}
解的个数为: 13组

2026-01-19 22:38
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:884
专家分:77
注 册:2020-2-10
收藏
得分:0 
中间参数需要调整,才能把符合实际的解全部找到,如下是调整后结果:
举例:
输入:3和700
输出:
3  173  {4,13,156}
3  102  {4,14,84}
3  79  {4,15,60}
3  68  {4,16,48}
3  58  {4,18,36}
3  54  {4,20,30}
3  53  {4,21,28}
3  133  {5,8,120}
3  59  {5,9,45}
3  45  {5,10,30}
3  37  {5,12,20}
3  55  {6,7,42}
3  38  {6,8,24}
3  33  {6,9,18}
3  31  {6,10,15}
解的个数为: 15组

代码如下:

Private Sub Command1_Click()
'把 1/a 拆分成三个不同单位分数的和,并且三个分母之和小于某整数的程序代码
Dim n, a As Double
n = Val(Text1)
m = Val(Text2)
a = Val(1 + n)
Do While a >= Val(n) And a <= 50 * n
b = Val(a + 1)


Do While b <= Val(100 * n)


u = Val(a * b * n)
v = Val(a * b - n * (a + b))
If Val(v) > 0 Then
c = Val(u / v)

If b < c And Val(u) - Val(v) * Int(Val(u / v)) = 0 Then
k = Val(a + b + c)
If k <= m Then
s = "{" & a & "," & b & "," & c & "}"
s2 = s2 & n & "  " & k & "  " & s & vbCrLf
s3 = s3 + 1
End If
End If
End If

b = Val(b + 1)
Loop


a = Val(a + 1)
Loop
If s3 > 0 Then
Text3 = s2 & "解的个数为: " & s3 & "组"
Else
Text3 = "无解"
End If


End Sub


Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
End Sub
2026-01-20 06:30
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:884
专家分:77
注 册:2020-2-10
收藏
得分:0 
举例:
输入:500
输出:
500  4525  {1375,1500,1650}
需要比较的解的个数为: 18组
2026-01-20 07:00
快速回复:把 1/a 拆分成三个不同单位分数的和,并且三个分母之和为最小的VB程序
数据加载中...
 
   



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

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