| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2339 人关注过本帖
标题:求数字中相同数的个数
只看楼主 加入收藏
zougonghua
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-4-1
收藏
 问题点数:0 回复次数:12 
求数字中相同数的个数
我有1-100中的任意10个数,也有可以10个数都相同,我想知道这10个数中有几个相同数,有多少个相同数,是不是10个数都连在一起的,假如有10个这样的数10,20,12,10,40,30,30,40,19,40,它们之中有10的数2个,40的有3个,30的有两个,不是连续数,我这指的连续数是10个数都不相同,并连续的数。。这样的怎么写啊,想了好久都没头绪,请帮忙,谢谢。。
搜索更多相关主题的帖子: 数字 头绪 
2008-04-07 12:40
编程之星
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:285
专家分:391
注 册:2007-4-10
收藏
得分:0 
给你一个思路吧。
你可以先在这10个数中提取出有什么数字是相同的(这个你可以用双重循环来遍试),再分别用提取出的这些的数字在这个10个数中查找有那些数字和提取出的数字一致(这个你可以用最简单的遍历查找算法),这时,在遍历查找中你可以设置一个变量(例如:count)递增来记录每次数字一直的情况。而count变量最后的结果就是某个一致数字的相同情况(出现次数)。

怎么越学就觉得自己越笨
2008-04-07 14:28
zougonghua
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-4-1
收藏
得分:0 
回复 2# 的帖子
谢谢你的回复,可不可以给段代码。。。。
2008-04-07 15:08
编程之星
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:285
专家分:391
注 册:2007-4-10
收藏
得分:0 
给段带有一点点BUG的代码你看看,由于时间等等原因所以还没有修正BUG。大家都可以来修改一下,这样共同进步嘛,呵呵
代码如下:
Private Sub Command1_Click()
    arr = Array(5, 6, 8, 2, 5, 2, 5, 6)
    Dim arr2() As Integer
    Dim k As Integer
    For i = 0 To UBound(arr)
        For j = i + 1 To UBound(arr)
            '此处出现一点小小的BUG,这个BUG将会导致arr2数组出现相同的元素,你可以修改一下
            '不要忘了修改之后发布代码,共同学习嘛,呵呵
            If arr(j) = arr(i) Then
                k = k + 1
                ReDim Preserve arr2(k)
                arr2(k) = arr(j)
            End If
        Next
    Next
    Dim count As Integer
    For i = 1 To UBound(arr2)
        For j = 0 To UBound(arr)
            If arr2(i) = arr(j) Then
                count = count + 1
            End If
        Next j
        Print arr2(i) & " 出现的次数:" & count
        count = 0
    Next i
End Sub

怎么越学就觉得自己越笨
2008-04-07 23:14
zougonghua
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-4-1
收藏
得分:0 
这个BUG也很麻烦啊
2008-04-08 12:53
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
“几个相同数,有多少个相同数,是不是10个数都连在一起的”,这是三个问题。可以编是那个函数来个个击破。

2008-04-08 19:44
qq0514
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-4-8
收藏
得分:0 
这个是什么意思!
treeview1.linestyle=tvwrootlines

forme1.zorder (0)
treewiew1.nodes.item(treeview1.selecteditem.index)
那位大哥帮解释下,谢谢了
2008-04-08 19:57
qq0514
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-4-8
收藏
得分:0 
帮帮忙好不好
谢谢了
2008-04-08 19:58
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
先建一个类模块,粘贴下面代码:
Option Explicit

Private mCount As Integer


''''''相同数的个数'''''''
Public Property Get Count() As Integer
    Count = mCount
   
End Property


''''''''''求几个相同数'''''''

Public Function SameNumber(StringValue As String) As String
Dim Value() As String
Dim ColNum As Collection     '''存储数字
Dim i As Integer
Dim j As Integer
Dim Q As Integer
Dim Q1 As Integer
Dim Temp As Integer
Dim Temp1 As Integer
Dim Temp2 As String

On Error GoTo ProcError

    Value() = Split(StringValue, ",")
    Q = LBound(Value)
    Q1 = UBound(Value)
   
    ''''''先排序,从小到大'''''
   
    For i = Q To Q1 - 1
'        Temp = Val(Value(i))
        For j = i + 1 To Q1
'            Temp1 = Val(Value(j))
            
            If Val(Value(i)) > Val(Value(j)) Then
'            If Temp > Temp1 Then
                Temp2 = Value(j)
                Value(j) = Value(i)
                Value(i) = Temp2
               
               
            End If
        
        Next
        
    Next

'    Temp2 = ""
'    For i = Q To Q1
'        If i = Q Then
'            Temp2 = Value(i)
'
'        Else
'            Temp2 = Value(i) & "," & Temp2
'
'        End If
'
'    Next

'    MsgBox "排序后的序列为:" & Temp2
   
    '''''''取出不同的数'''''''''''
   
    Set ColNum = New Collection
   
    ColNum.Add Val(Value(Q))
    Temp = Val(Value(Q))
        
    For j = Q + 1 To Q1
        Temp1 = Val(Value(j))
        If Temp <> Temp1 Then
            ColNum.Add Temp1
            Temp = Temp1
            
        End If
   
    Next
   
    Dim x As Variant
   
    Temp2 = ""
    For Each x In ColNum
        If Temp2 = "" Then
            Temp2 = x
        
        Else
            Temp2 = Temp2 & "," & x
        
        End If
   
    Next
   
'    MsgBox "取出的数列为:" & Temp2
   
    SameNumber = Temp2
    mCount = ColNum.Count
   
ProcExit:
    Exit Function
   
ProcError:
    MsgBox Err.Number & vbCrLf & Err.Description, 48
    Resume ProcExit
   
End Function

''''''判断是否为连续的数列'''''''

Public Function IsSame(StringValue As String) As Boolean
Dim Temp As String
Dim Temp1 As Integer
Dim x As Variant
Dim Value() As String

    ''''''获取不相同的数列'''''''''
    Temp = Me.SameNumber(StringValue)
    Value() = Split(Temp, ",")
   
    IsSame = True
    Temp1 = -1
    For Each x In Value
        If Temp1 = -1 Then
            Temp1 = Val(x)
            
        Else
            If Val(x) - Temp1 <> 1 Then
                IsSame = False
                Exit For
            
            Else
                Temp1 = Val(x)
            End If
        End If
        
    Next
   
End Function
然后在Form1窗体上建Text1,Text2,text3,text4和一个command1按钮,Text1为输入框。然后粘贴下列代码:
Option Explicit


Private Sub Command1_Click()
Dim C As New Class1
   
   
    Text3 = C.SameNumber(Text1)
    Text2 = C.Count
    If C.IsSame(Text1) = False Then
        Text4 = "不是连续的数列!"
   
    Else
        Text4 = "此数列为连续的数列!"
   
    End If
   
End Sub

2008-04-08 22:10
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
现在的人真是让人心寒。好心回答问题,完事后连谢谢都不会说。世态炎凉啊!

2008-04-09 12:24
快速回复:求数字中相同数的个数
数据加载中...
 
   



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

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