| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
学习型 ASP/PHP/ASP.NET 主机 35元/年全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
赛孚耐:软件保护加密专家身份认证令牌USB KEY  
共有 364 人关注过本帖
标题:菜鸟求教:1,2,3,4,5为边长 可形成多少个三角形
收藏  订阅  推荐  打印 
wujie
Rank: 1
等级:新手上路
帖子:10
积分:200
注册:2005-3-19
菜鸟求教: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-4-1 16:25
griefforyou
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:27
帖子:3338
积分:33882
注册:2004-4-15

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://yc.4yt.net
2005-4-1 21:49
wujie
Rank: 1
等级:新手上路
帖子:10
积分:200
注册:2005-3-19

版主的做法错误了,并没有排除掉一些重复的三角形
如5-4-5和4-5-5,5-5-4是同一三角形
2005-4-2 19:48
griefforyou
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:27
帖子:3338
积分:33882
注册:2004-4-15

'排序函数,利用了List1,设计时将List1的Sorted属性设为True 看见这句话吗?必须将List1的Sorted属性在设计状态下设为True(运行时是只读的)

四月天原创文学网 http://yc.4yt.net
2005-4-3 12:08
griefforyou
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:27
帖子:3338
积分:33882
注册:2004-4-15

如果不想通过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://yc.4yt.net
2005-4-3 14:03
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.059586 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved