标题:菜鸟求教:1,2,3,4,5为边长 可形成多少个三角形
只看楼主
wujie
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-3-19
 问题点数:0 回复次数:4 
菜鸟求教:1,2,3,4,5为边长 可形成多少个三角形
以1,2,3,4,5为边长 可形成多少个三角形,要怎样算出来 ?以下代码算出来的结果会包含 一些重复的三角形 如A=2,B=2,C=3和A=2,B=3,C=2以及A=3、B=2,C=2是表示同一个三角形 ,要怎样处理? Dim i, j, k, s As Short For i = 1 To 5 For j = 1 To 5 For k = 1 To 5 If i + j >= k And i + k >= j And j + k >= i Then s = s + 1 End If Next Next Next MsgBox("可形成的三角形共有" & s & "个")
搜索更多相关主题的帖子: 三角形 形成 
2005-04-01 16:25
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
得分:0 

Option Explicit

Private Sub Command1_Click() Dim i, j, k, s As Long For i = 1 To 5 For j = 1 To 5 For k = 1 To 5 If i + j >= k And i + k >= j And j + k >= i Then s = s + 1 AddToList Sort(i, j, k) End If Next Next Next MsgBox ("可形成的三角形共有" & List2.ListCount & "个") End Sub

'排序函数,利用了List1,设计时将List1的Sorted属性设为True Private Function Sort(x, y, z) As String List1.Clear List1.AddItem x List1.AddItem y List1.AddItem z Sort = List1.List(0) & "-" & List1.List(1) & "-" & List1.List(2) End Function

'将组合添加到列表框,若已经存在则不添加 Private Sub AddToList(str As String) Dim i As Long For i = 0 To List2.ListCount If List2.List(i) = str Then Exit Sub End If Next List2.AddItem str End Sub

[此贴子已经被作者于2005-4-1 21:51:41编辑过]


天津网站建设 http://www./
2005-04-01 21:49
wujie
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-3-19
得分:0 
版主的做法错误了,并没有排除掉一些重复的三角形
如5-4-5和4-5-5,5-5-4是同一三角形
2005-04-02 19:48
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
得分:0 
'排序函数,利用了List1,设计时将List1的Sorted属性设为True 看见这句话吗?必须将List1的Sorted属性在设计状态下设为True(运行时是只读的)

天津网站建设 http://www./
2005-04-03 12:08
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
得分:0 

如果不想通过List1来排序,用以下函数也行。 Private Function Sort(x As Integer, y As Integer, z As Integer) As String Dim temp As Integer

If x > y Then temp = x x = y y = temp End If If y > z Then temp = y y = z z = temp End If If x > y Then temp = x x = y y = temp End If Sort = x & "-" & y & "-" & z End Function


天津网站建设 http://www./
2005-04-03 14:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-14572-1-1.html




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

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