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


Do While b <= Val(5 * n)
c = Val(b + 1)

Do While c <= Val(8 * n)
d = Val(c + 1)
Do While d <= Val(10 * n)

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

If d < f And Val(u) - Val(v) * Int(Val(u / v)) = 0 Then
k = Val(a + b + c + d + f)
If k <= m Then
m = k
s = "{" & a & "," & b & "," & c & "," & d & "," & f & "}"
s2 = n & "  " & m & "  " & s & vbCrLf
s3 = s3 + 1
End If
End If
End If
d = Val(d + 1)
Loop
c = Val(c + 1)
Loop
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 = ""
Text3 = ""
End Sub
搜索更多相关主题的帖子: 拆分 If While Do End 
2026-01-19 13:22
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:884
专家分:77
注 册:2020-2-10
收藏
得分:0 
举例:
输入:1
输出:
1  38  {3,4,5,6,20}
需要比较的解的个数为: 1组

输入:2
输出:
2  58  {6,9,10,15,18}
需要比较的解的个数为: 5组
2026-01-19 13:25
ysr2857
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:34
帖 子:884
专家分:77
注 册:2020-2-10
收藏
得分:0 
3  86  {10,12,15,21,28}
需要比较的解的个数为: 13组

4  111  {12,20,21,28,30}
需要比较的解的个数为: 14组

5  133  {20,21,24,28,40}
需要比较的解的个数为: 18组

6  160  {21,28,30,36,45}
需要比较的解的个数为: 22组
2026-01-19 13:29
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(5 * n)
c = Val(b + 1)

Do While c <= Val(10 * n)
d = Val(c + 1)
Do While d <= Val(20 * n)

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

If d < f And Val(u) - Val(v) * Int(Val(u / v)) = 0 Then
k = Val(a + b + c + d + f)
If k <= m Then

s = "{" & a & "," & b & "," & c & "," & d & "," & f & "}"
s2 = s2 & n & "  " & k & "  " & s & vbCrLf
s3 = s3 + 1
End If
End If
End If
d = Val(d + 1)
Loop
c = Val(c + 1)
Loop
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

举例:
输入:1和500
输出:
1  375  {2,3,9,19,342}
1  214  {2,3,9,20,180}
1  271  {2,3,10,16,240}
1  123  {2,3,10,18,90}
1  95  {2,3,10,20,60}
1  181  {2,4,6,13,156}
1  110  {2,4,6,14,84}
1  87  {2,4,6,15,60}
1  76  {2,4,6,16,48}
1  66  {2,4,6,18,36}
1  62  {2,4,6,20,30}
1  163  {2,4,7,10,140}
1  67  {2,4,7,12,42}
1  55  {2,4,7,14,28}
1  95  {2,4,8,9,72}
1  64  {2,4,8,10,40}
1  50  {2,4,8,12,24}
1  45  {2,4,9,12,18}
1  43  {2,4,10,12,15}
1  141  {2,5,6,8,120}
1  67  {2,5,6,9,45}
1  53  {2,5,6,10,30}
1  45  {2,5,6,12,20}
1  38  {3,4,5,6,20}
解的个数为: 24组

输入:2和600
输出:
2  535  {4,6,18,39,468}
2  428  {4,6,18,40,360}
2  407  {4,6,19,36,342}
2  295  {4,6,19,38,228}
2  542  {4,6,20,32,480}
2  393  {4,6,20,33,330}
2  319  {4,6,20,34,255}
2  275  {4,6,20,35,210}
2  246  {4,6,20,36,180}
2  199  {4,6,20,39,130}
2  190  {4,6,20,40,120}
2  475  {4,7,14,30,420}
2  281  {4,7,14,32,224}
2  200  {4,7,14,35,140}
2  187  {4,7,14,36,126}
2  264  {4,7,15,28,210}
2  196  {4,7,15,30,140}
2  145  {4,7,15,35,84}
2  387  {4,7,16,24,336}
2  167  {4,7,16,28,112}
2  302  {4,7,18,21,252}
2  120  {4,7,18,28,63}
2  107  {4,7,18,36,42}
2  157  {4,7,20,21,105}
2  103  {4,7,20,30,42}
2  407  {4,8,11,32,352}
2  320  {4,8,11,33,264}
2  173  {4,8,11,40,110}
2  362  {4,8,12,26,312}
2  267  {4,8,12,27,216}
2  220  {4,8,12,28,168}
2  174  {4,8,12,30,120}
2  152  {4,8,12,32,96}
2  145  {4,8,12,33,88}
2  132  {4,8,12,36,72}
2  124  {4,8,12,40,60}
2  205  {4,8,13,24,156}
2  155  {4,8,13,26,104}
2  326  {4,8,14,20,280}
2  215  {4,8,14,21,168}
2  134  {4,8,14,24,84}
2  110  {4,8,14,28,56}
2  101  {4,8,14,35,40}
2  405  {4,8,15,18,360}
2  167  {4,8,15,20,120}
2  111  {4,8,15,24,60}
2  97  {4,8,15,30,40}
2  317  {4,8,16,17,272}
2  190  {4,8,16,18,144}
2  128  {4,8,16,20,80}
2  100  {4,8,16,24,48}
2  90  {4,8,18,24,36}
2  86  {4,8,20,24,30}
2  590  {4,9,10,27,540}
2  366  {4,9,10,28,315}
2  233  {4,9,10,30,180}
2  149  {4,9,10,36,90}
2  135  {4,9,10,40,72}
2  442  {4,9,11,22,396}
2  386  {4,9,12,19,342}
2  225  {4,9,12,20,180}
2  172  {4,9,12,21,126}
2  146  {4,9,12,22,99}
2  121  {4,9,12,24,72}
2  106  {4,9,12,27,54}
2  100  {4,9,12,30,45}
2  200  {4,9,13,18,156}
2  129  {4,9,14,18,84}
2  106  {4,9,15,18,60}
2  93  {4,9,15,20,45}
2  95  {4,9,16,18,48}
2  81  {4,9,18,20,30}
2  80  {4,9,18,21,28}
2  155  {4,10,11,20,110}
2  282  {4,10,12,16,240}
2  134  {4,10,12,18,90}
2  106  {4,10,12,20,60}
2  90  {4,10,12,24,40}
2  198  {4,10,13,15,156}
2  127  {4,10,14,15,84}
2  83  {4,10,14,20,35}
2  93  {4,10,15,16,48}
2  83  {4,10,15,18,36}
2  79  {4,10,15,20,30}
2  78  {4,10,15,21,28}
2  533  {5,6,10,32,480}
2  384  {5,6,10,33,330}
2  310  {5,6,10,34,255}
2  266  {5,6,10,35,210}
2  237  {5,6,10,36,180}
2  190  {5,6,10,39,130}
2  181  {5,6,10,40,120}
2  162  {5,6,11,30,110}
2  464  {5,6,12,21,420}
2  265  {5,6,12,22,220}
2  167  {5,6,12,24,120}
2  148  {5,6,12,25,100}
2  121  {5,6,12,28,70}
2  113  {5,6,12,30,60}
2  104  {5,6,12,36,45}
2  200  {5,6,13,20,156}
2  129  {5,6,14,20,84}
2  116  {5,6,14,21,70}
2  90  {5,6,14,30,35}
2  282  {5,6,15,16,240}
2  134  {5,6,15,18,90}
2  106  {5,6,15,20,60}
2  90  {5,6,15,24,40}
2  95  {5,6,16,20,48}
2  85  {5,6,18,20,36}
2  80  {5,6,20,21,28}
2  335  {5,7,8,35,280}
2  200  {5,7,8,40,140}
2  182  {5,7,10,20,140}
2  148  {5,7,10,21,105}
2  94  {5,7,10,30,42}
2  458  {5,7,12,14,420}
2  179  {5,7,12,15,140}
2  86  {5,7,12,20,42}
2  74  {5,7,14,20,28}
2  160  {5,8,9,18,120}
2  114  {5,8,9,20,72}
2  91  {5,8,9,24,45}
2  317  {5,8,10,14,280}
2  158  {5,8,10,15,120}
2  119  {5,8,10,16,80}
2  83  {5,8,10,20,40}
2  77  {5,8,10,24,30}
2  80  {5,8,12,15,40}
2  69  {5,8,12,20,24}
2  216  {5,9,10,12,180}
2  84  {5,9,10,15,45}
2  72  {5,9,10,18,30}
2  64  {5,9,12,18,20}
2  62  {5,10,12,15,20}
2  373  {6,7,8,16,336}
2  98  {6,7,8,21,56}
2  87  {6,7,8,24,42}
2  162  {6,7,9,14,126}
2  82  {6,7,9,18,42}
2  175  {6,7,10,12,140}
2  80  {6,7,10,15,42}
2  67  {6,7,12,14,28}
2  107  {6,8,9,12,72}
2  65  {6,8,9,18,24}
2  76  {6,8,10,12,40}
2  63  {6,8,10,15,24}
2  58  {6,9,10,15,18}
解的个数为: 148组
2026-01-19 14:19
快速回复:把 1/a 拆分成五个不同单位分数的和,并且五个分母之和为最小的VB程序
数据加载中...
 
   



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

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