vb 这个比较该怎么写

[复制链接]
查看11 | 回复1 | 2009-4-12 21:25:55 | 显示全部楼层 |阅读模式
private function f(byval dd as string,byval cc As String) as integer
Dim i As Integer, j As Integer
For i = 1 To Len(dd)
For j = 1 To Len(cc)
If Mid(cc, j, 1) = Mid(dd, i, 1) Then f = f + 1
Next j
Next i
end function
private sub command1_click()

g= f("005","567") >1
end sub
这段代码是比较两个数当中数字的重复个数
如何改成这两个数,每个数每位相加,然后比较重复个数大于1的
如005,每位相加得到0+0=0,0+5=5,0+5=5,可以看作第一组
567,每位相加得到5+6=11,6+7=13,5+7=12可以看作第二组
然后比较这两组数字,当第一组的,0,0,5和第二组的11,13,12任意重复个数大于1,也就是重复2的和重复3的,也就是g=f("第一组","第二组")>1
但是和上面不同的是如MsgBox f("005", "067")现在的代码结果为2,因为在一组里有2个0和第二组的0重复,所以是2,这个不符合我要改的,像这样的在新代码中只能是认为重复1个,或MsgBox f("089", "007")或MsgBox f("000", "067"),在新代码中都认定为重复1,像MsgBox f("009", "007")或MsgBox f("509", "057"),这样才认为是重复2,也就是每一组至少有两个数字和另一组的至少两个数字相同这样才可以.
还要这样分开写的通用的,该怎么写

回复

使用道具 举报

千问 | 2009-4-12 21:25:55 | 显示全部楼层
Function f(ByVal dd As String, ByVal cc As String) As Integer
Dim countdd(9) As Integer
Dim countcc(9) As Integer
Dim i As Integer
Dim elem As Char
For Each elem In dd
countdd(Val(elem)) += 1
Next
For Each elem In cc
countcc(Val(elem)) += 1...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行