[Help] Tìm kết quả trong chuỗi với điều kiện

Liên hệ QC

xiilliilliix

Thành viên mới
Tham gia
10/3/11
Bài viết
19
Được thích
2
Em có tập hợp các số bao gồm 4 số từ tập hợp {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} như trong file. Đề bài:
1. Hãy tìm ra tập hợp gồm 3 số với điều kiện cứ 2 số cộng lại được số thứ 3, ko cần phân biệt thứ tự, vị trí như ...... số 4159 hoặc 9154 thì sẽ có 1+4=5 và 4+5=9 . Show kết quả 145 và 459
2. Các số liên tiếp vd 3214 thì sẽ ra kết quả là 3 số liên tiếp là 123 và 234; 4 số liên tiếp là 1234. Show kết quả 145 và 459.
3. Các số tăng theo cấp số cộng ( +2, +3). Vd 4027 sẽ có kết quả là 024 (+2) hoặc số 6093 sẽ có kết quả là 036 và 369. Show kết quả 036 và 369.
Vd : số 9453 trong file sẽ có 2 kết quả của điều kiện 1 và điều kiện 2 là 4+5=9 và 3-4-5 liên tục. Show kết quả 459 và 345.

Em quên mất trường hợp sau
+ trong trường hợp 2 số cộng lại được số thứ 3 thì các cộng bằng 10 thì tính số thứ 3 = 0. VD: trường hợp 1 + 9 = 0, 2 + 8 = 0, 3 + 7 = 0
+ các trường hợp như 910 vừa là liên tục (điều kiện 2) vừa là 2 số cộng lại thì số thứ 3 (điều kiện 1) và 901 tính lặp của tập hợp các số từ 0-9 rồi từ 9 lại chạy tiếp về 0 , 1 , 2 (vòng lặp)


Chân thành cảm ơn các anh chị.
Chúc anh chị cuối tuần vui vẻ.
 

File đính kèm

  • GPExcel.xlsx
    9.8 KB · Đọc: 11
Lần chỉnh sửa cuối:
Theo quy tắc 1 thì có tính số 202, 011 (cộng 2 số được số thứ 3). Ý tôi hỏi là trong quy tắc 1 có tính số bị lặp kg
 
Em có tập hợp các số bao gồm 4 số từ tập hợp {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} như trong file. Đề bài:
1. Hãy tìm ra tập hợp gồm 3 số với điều kiện cứ 2 số cộng lại được số thứ 3, ko cần phân biệt thứ tự, vị trí như ...... số 4159 hoặc 9154 thì sẽ có 1+4=5 và 4+5=9 . Show kết quả 145 và 459
2. Các số liên tiếp vd 3214 thì sẽ ra kết quả là 3 số liên tiếp là 123 và 234; 4 số liên tiếp là 1234. Show kết quả 145 và 459.
3. Các số tăng theo cấp số cộng ( +2, +3). Vd 4027 sẽ có kết quả là 024 (+2) hoặc số 6093 sẽ có kết quả là 036 và 369. Show kết quả 036 và 369.
Vd : số 9453 trong file sẽ có 2 kết quả của điều kiện 1 và điều kiện 2 là 4+5=9 và 3-4-5 liên tục. Show kết quả 459 và 345.
Chân thành cảm ơn các anh chị.
Chúc anh chị cuối tuần vui vẻ.
Bạn chạy đoạn code này
Mã:
Sub XiLiRaCaiZi()
Dim SArr, Res() As String
Dim Tmp, i, j, js
SArr = Sheet1.Range("F2", Sheet1.Range("F2").End(xlDown))
ReDim Res(1 To UBound(SArr), 1 To 1)

For i = 1 To UBound(SArr)
ReDim Tmp(3): js = 0
    For j = 0 To 9
        If Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) >= 1 Then
            For js = js To js + Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) - 1
                Tmp(js) = j
            Next js
        End If
    Next j
    If Tmp(0) + Tmp(1) = Tmp(2) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(1) & Tmp(2)
    If Tmp(0) + Tmp(1) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(1) & Tmp(3)
    If Tmp(0) + Tmp(2) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(2) & Tmp(3)
    If Tmp(1) + Tmp(2) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(1) & Tmp(2) & Tmp(3)
    For j = 1 To 4
        If InStr(Join(Tmp), Tmp(0) + j) And InStr(Join(Tmp), Tmp(0) + j * 2) Then
            Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(0) + j & Tmp(0) + j * 2
        End If
        If InStr(Join(Tmp), Tmp(1) + j) And InStr(Join(Tmp), Tmp(1) + j * 2) Then
            Res(i, 1) = Res(i, 1) & " " & Tmp(1) & Tmp(1) + j & Tmp(1) + j * 2
        End If
    Next j
Res(i, 1) = Trim(Res(i, 1))
Next i

Sheet1.Range("H2").CurrentRegion.ClearContents
Sheet1.Range("H2").Resize(UBound(SArr), 1) = Res
End Sub
 
Bạn chạy đoạn code này
Mã:
Sub XiLiRaCaiZi()
Dim SArr, Res() As String
Dim Tmp, i, j, js
SArr = Sheet1.Range("F2", Sheet1.Range("F2").End(xlDown))
ReDim Res(1 To UBound(SArr), 1 To 1)

For i = 1 To UBound(SArr)
ReDim Tmp(3): js = 0
    For j = 0 To 9
        If Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) >= 1 Then
            For js = js To js + Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) - 1
                Tmp(js) = j
            Next js
        End If
    Next j
    If Tmp(0) + Tmp(1) = Tmp(2) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(1) & Tmp(2)
    If Tmp(0) + Tmp(1) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(1) & Tmp(3)
    If Tmp(0) + Tmp(2) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(2) & Tmp(3)
    If Tmp(1) + Tmp(2) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(1) & Tmp(2) & Tmp(3)
    For j = 1 To 4
        If InStr(Join(Tmp), Tmp(0) + j) And InStr(Join(Tmp), Tmp(0) + j * 2) Then
            Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(0) + j & Tmp(0) + j * 2
        End If
        If InStr(Join(Tmp), Tmp(1) + j) And InStr(Join(Tmp), Tmp(1) + j * 2) Then
            Res(i, 1) = Res(i, 1) & " " & Tmp(1) & Tmp(1) + j & Tmp(1) + j * 2
        End If
    Next j
Res(i, 1) = Trim(Res(i, 1))
Next i

Sheet1.Range("H2").CurrentRegion.ClearContents
Sheet1.Range("H2").Resize(UBound(SArr), 1) = Res
End Sub
Bạn chạy đoạn code này
Mã:
Sub XiLiRaCaiZi()
Dim SArr, Res() As String
Dim Tmp, i, j, js
SArr = Sheet1.Range("F2", Sheet1.Range("F2").End(xlDown))
ReDim Res(1 To UBound(SArr), 1 To 1)

For i = 1 To UBound(SArr)
ReDim Tmp(3): js = 0
    For j = 0 To 9
        If Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) >= 1 Then
            For js = js To js + Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) - 1
                Tmp(js) = j
            Next js
        End If
    Next j
    If Tmp(0) + Tmp(1) = Tmp(2) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(1) & Tmp(2)
    If Tmp(0) + Tmp(1) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(1) & Tmp(3)
    If Tmp(0) + Tmp(2) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(2) & Tmp(3)
    If Tmp(1) + Tmp(2) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(1) & Tmp(2) & Tmp(3)
    For j = 1 To 4
        If InStr(Join(Tmp), Tmp(0) + j) And InStr(Join(Tmp), Tmp(0) + j * 2) Then
            Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(0) + j & Tmp(0) + j * 2
        End If
        If InStr(Join(Tmp), Tmp(1) + j) And InStr(Join(Tmp), Tmp(1) + j * 2) Then
            Res(i, 1) = Res(i, 1) & " " & Tmp(1) & Tmp(1) + j & Tmp(1) + j * 2
        End If
    Next j
Res(i, 1) = Trim(Res(i, 1))
Next i

Sheet1.Range("H2").CurrentRegion.ClearContents
Sheet1.Range("H2").Resize(UBound(SArr), 1) = Res
End Sub

Em quên mất trường hợp sau
+ trong trường hợp 2 số cộng lại được số thứ 3 thì các cộng bằng 10 thì tính số thứ 3 = 0. VD: trường hợp 1 + 9 = 0, 2 + 8 = 0, 3 + 7 = 0
+ các trường hợp như 910 vừa là liên tục (điều kiện 2) vừa là 2 số cộng lại thì số thứ 3 (điều kiện 1) và 901 tính lặp của tập hợp các số từ 0-9 rồi từ 9 lại chạy tiếp về 0 , 1 , 2 (vòng lặp)
 
Bạn chạy đoạn code này
Mã:
Sub XiLiRaCaiZi()
Dim SArr, Res() As String
Dim Tmp, i, j, js
SArr = Sheet1.Range("F2", Sheet1.Range("F2").End(xlDown))
ReDim Res(1 To UBound(SArr), 1 To 1)

For i = 1 To UBound(SArr)
ReDim Tmp(3): js = 0
    For j = 0 To 9
        If Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) >= 1 Then
            For js = js To js + Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) - 1
                Tmp(js) = j
            Next js
        End If
    Next j
    If Tmp(0) + Tmp(1) = Tmp(2) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(1) & Tmp(2)
    If Tmp(0) + Tmp(1) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(1) & Tmp(3)
    If Tmp(0) + Tmp(2) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(2) & Tmp(3)
    If Tmp(1) + Tmp(2) = Tmp(3) Then Res(i, 1) = Res(i, 1) & " " & Tmp(1) & Tmp(2) & Tmp(3)
    For j = 1 To 4
        If InStr(Join(Tmp), Tmp(0) + j) And InStr(Join(Tmp), Tmp(0) + j * 2) Then
            Res(i, 1) = Res(i, 1) & " " & Tmp(0) & Tmp(0) + j & Tmp(0) + j * 2
        End If
        If InStr(Join(Tmp), Tmp(1) + j) And InStr(Join(Tmp), Tmp(1) + j * 2) Then
            Res(i, 1) = Res(i, 1) & " " & Tmp(1) & Tmp(1) + j & Tmp(1) + j * 2
        End If
    Next j
Res(i, 1) = Trim(Res(i, 1))
Next i

Sheet1.Range("H2").CurrentRegion.ClearContents
Sheet1.Range("H2").Resize(UBound(SArr), 1) = Res
End Sub
Thanks anh
 
Em quên mất trường hợp sau
+ trong trường hợp 2 số cộng lại được số thứ 3 thì các cộng bằng 10 thì tính số thứ 3 = 0. VD: trường hợp 1 + 9 = 0, 2 + 8 = 0, 3 + 7 = 0
+ các trường hợp như 910 vừa là liên tục (điều kiện 2) vừa là 2 số cộng lại thì số thứ 3 (điều kiện 1) và 901 tính lặp của tập hợp các số từ 0-9 rồi từ 9 lại chạy tiếp về 0 , 1 , 2 (vòng lặp)
Còn quên gì nữa không bạn
 
da. ko anh. Anh làm ơn giúp em,
Mã:
Sub TheNayDaDungChua()
Dim SArr, Res() As String
Dim Tmp, i, j, js, x
SArr = Sheet1.Range("F2", Sheet1.Range("F2").End(xlDown))
ReDim Res(1 To UBound(SArr), 1 To 1)

For i = 1 To UBound(SArr)
ReDim Tmp(3): js = 0
    For j = 0 To 9
        If Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) >= 1 Then
            For js = js To js + Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) - 1
                Tmp(js) = j
            Next js
        End If
    Next j
    For j = 0 To UBound(Tmp) - 1
        For js = j + 1 To UBound(Tmp)
            For x = 0 To UBound(Tmp)
                If x <> j And x <> js Then
                    If (Tmp(j) + Tmp(js)) Mod 10 = Tmp(x) Then
                        Res(i, 1) = Res(i, 1) & " " & Tmp(j) & Tmp(js) & Tmp(x)
                    End If
                End If
            Next x
        Next js
    Next j
    For j = 1 To 4
        For js = 0 To UBound(Tmp)
            If InStr(Join(Tmp), (Tmp(js) + j) Mod 10) And InStr(Join(Tmp), (Tmp(js) + j * 2) Mod 10) Then
                Res(i, 1) = Res(i, 1) & " " & Tmp(js) & (Tmp(js) + j) Mod 10 & (Tmp(js) + j * 2) Mod 10
            End If
        Next js
        For js = 0 To UBound(Tmp)
            If InStr(Join(Tmp), (Tmp(js) + j) Mod 10) And InStr(Join(Tmp), (Tmp(js) + j * 2) Mod 10) _
            And InStr(Join(Tmp), (Tmp(js) + j * 3) Mod 10) Then
                Res(i, 1) = Res(i, 1) & " " & Tmp(js) & (Tmp(js) + j) Mod 10 & (Tmp(js) + j * 2) Mod 10 _
                & (Tmp(js) + j * 3) Mod 10
            End If
        Next js
    Next j
Res(i, 1) = Trim(Res(i, 1))
Next i
With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(Res)
Tmp = Split(Res(i, 1))
    For j = 0 To UBound(Tmp)
        If .exists(Tmp(j)) = False Then .Add Tmp(j), ""
    Next j
    Res(i, 1) = Join(.keys)
    .RemoveAll
Next i
End With

Sheet1.Range("H2").CurrentRegion.ClearContents
Sheet1.Range("H2").Resize(UBound(SArr), 1) = Res
End Sub
code này đã loại bỏ những kết quả trùng trong 1 ô cho đỡ rối mắt & đã bổ sung cho dãy 4 số.
Có 1 vài kết quả code tính đúng mà đọc kết quả xong phải nghĩ 1 lúc mới ra cách tính.

Thế mới biết số má vất vả thế nào. Bạn nhỉ?!$@!!//**/
Vui vẻ nhé bạn
 
Mã:
Sub TheNayDaDungChua()
Dim SArr, Res() As String
Dim Tmp, i, j, js, x
SArr = Sheet1.Range("F2", Sheet1.Range("F2").End(xlDown))
ReDim Res(1 To UBound(SArr), 1 To 1)

For i = 1 To UBound(SArr)
ReDim Tmp(3): js = 0
    For j = 0 To 9
        If Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) >= 1 Then
            For js = js To js + Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) - 1
                Tmp(js) = j
            Next js
        End If
    Next j
    For j = 0 To UBound(Tmp) - 1
        For js = j + 1 To UBound(Tmp)
            For x = 0 To UBound(Tmp)
                If x <> j And x <> js Then
                    If (Tmp(j) + Tmp(js)) Mod 10 = Tmp(x) Then
                        Res(i, 1) = Res(i, 1) & " " & Tmp(j) & Tmp(js) & Tmp(x)
                    End If
                End If
            Next x
        Next js
    Next j
    For j = 1 To 4
        For js = 0 To UBound(Tmp)
            If InStr(Join(Tmp), (Tmp(js) + j) Mod 10) And InStr(Join(Tmp), (Tmp(js) + j * 2) Mod 10) Then
                Res(i, 1) = Res(i, 1) & " " & Tmp(js) & (Tmp(js) + j) Mod 10 & (Tmp(js) + j * 2) Mod 10
            End If
        Next js
        For js = 0 To UBound(Tmp)
            If InStr(Join(Tmp), (Tmp(js) + j) Mod 10) And InStr(Join(Tmp), (Tmp(js) + j * 2) Mod 10) _
            And InStr(Join(Tmp), (Tmp(js) + j * 3) Mod 10) Then
                Res(i, 1) = Res(i, 1) & " " & Tmp(js) & (Tmp(js) + j) Mod 10 & (Tmp(js) + j * 2) Mod 10 _
                & (Tmp(js) + j * 3) Mod 10
            End If
        Next js
    Next j
Res(i, 1) = Trim(Res(i, 1))
Next i
With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(Res)
Tmp = Split(Res(i, 1))
    For j = 0 To UBound(Tmp)
        If .exists(Tmp(j)) = False Then .Add Tmp(j), ""
    Next j
    Res(i, 1) = Join(.keys)
    .RemoveAll
Next i
End With

Sheet1.Range("H2").CurrentRegion.ClearContents
Sheet1.Range("H2").Resize(UBound(SArr), 1) = Res
End Sub
code này đã loại bỏ những kết quả trùng trong 1 ô cho đỡ rối mắt & đã bổ sung cho dãy 4 số.
Có 1 vài kết quả code tính đúng mà đọc kết quả xong phải nghĩ 1 lúc mới ra cách tính.

Thế mới biết số má vất vả thế nào. Bạn nhỉ?!$@!!//**/
Vui vẻ nhé bạn
em không hiểu gì luôn, ngu toán :(
 
Sao mấy cây đại thụ về công thức lại tìm hiểu VBA làm gì vậy hả trời
 
Sao mấy cây đại thụ về công thức lại tìm hiểu VBA làm gì vậy hả trời

Mấy cái đề bài này thuộc vè lập trình toán. Làm bằng C/C++ dễ hơn nhiều.
VBA là lập trình hổ trợ ứng dụng. Dùng VBA để giải mấy bài này mất thì giờ mà chả học được bao nhiêu.
 
Mã:
Sub TheNayDaDungChua()
Dim SArr, Res() As String
Dim Tmp, i, j, js, x
SArr = Sheet1.Range("F2", Sheet1.Range("F2").End(xlDown))
ReDim Res(1 To UBound(SArr), 1 To 1)

For i = 1 To UBound(SArr)
ReDim Tmp(3): js = 0
    For j = 0 To 9
        If Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) >= 1 Then
            For js = js To js + Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) - 1
                Tmp(js) = j
            Next js
        End If
    Next j
    For j = 0 To UBound(Tmp) - 1
        For js = j + 1 To UBound(Tmp)
            For x = 0 To UBound(Tmp)
                If x <> j And x <> js Then
                    If (Tmp(j) + Tmp(js)) Mod 10 = Tmp(x) Then
                        Res(i, 1) = Res(i, 1) & " " & Tmp(j) & Tmp(js) & Tmp(x)
                    End If
                End If
            Next x
        Next js
    Next j
    For j = 1 To 4
        For js = 0 To UBound(Tmp)
            If InStr(Join(Tmp), (Tmp(js) + j) Mod 10) And InStr(Join(Tmp), (Tmp(js) + j * 2) Mod 10) Then
                Res(i, 1) = Res(i, 1) & " " & Tmp(js) & (Tmp(js) + j) Mod 10 & (Tmp(js) + j * 2) Mod 10
            End If
        Next js
        For js = 0 To UBound(Tmp)
            If InStr(Join(Tmp), (Tmp(js) + j) Mod 10) And InStr(Join(Tmp), (Tmp(js) + j * 2) Mod 10) _
            And InStr(Join(Tmp), (Tmp(js) + j * 3) Mod 10) Then
                Res(i, 1) = Res(i, 1) & " " & Tmp(js) & (Tmp(js) + j) Mod 10 & (Tmp(js) + j * 2) Mod 10 _
                & (Tmp(js) + j * 3) Mod 10
            End If
        Next js
    Next j
Res(i, 1) = Trim(Res(i, 1))
Next i
With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(Res)
Tmp = Split(Res(i, 1))
    For j = 0 To UBound(Tmp)
        If .exists(Tmp(j)) = False Then .Add Tmp(j), ""
    Next j
    Res(i, 1) = Join(.keys)
    .RemoveAll
Next i
End With

Sheet1.Range("H2").CurrentRegion.ClearContents
Sheet1.Range("H2").Resize(UBound(SArr), 1) = Res
End Sub
code này đã loại bỏ những kết quả trùng trong 1 ô cho đỡ rối mắt & đã bổ sung cho dãy 4 số.
Có 1 vài kết quả code tính đúng mà đọc kết quả xong phải nghĩ 1 lúc mới ra cách tính.

Thế mới biết số má vất vả thế nào. Bạn nhỉ?!$@!!//**/
Vui vẻ nhé bạn
Mấy anh lập trình toàn siêu nhân. Bái phục
 
Mã:
Sub TheNayDaDungChua()
Dim SArr, Res() As String
Dim Tmp, i, j, js, x
SArr = Sheet1.Range("F2", Sheet1.Range("F2").End(xlDown))
ReDim Res(1 To UBound(SArr), 1 To 1)

For i = 1 To UBound(SArr)
ReDim Tmp(3): js = 0
    For j = 0 To 9
        If Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) >= 1 Then
            For js = js To js + Len(SArr(i, 1)) - Len(Replace(SArr(i, 1), j, "")) - 1
                Tmp(js) = j
            Next js
        End If
    Next j
    For j = 0 To UBound(Tmp) - 1
        For js = j + 1 To UBound(Tmp)
            For x = 0 To UBound(Tmp)
                If x <> j And x <> js Then
                    If (Tmp(j) + Tmp(js)) Mod 10 = Tmp(x) Then
                        Res(i, 1) = Res(i, 1) & " " & Tmp(j) & Tmp(js) & Tmp(x)
                    End If
                End If
            Next x
        Next js
    Next j
    For j = 1 To 4
        For js = 0 To UBound(Tmp)
            If InStr(Join(Tmp), (Tmp(js) + j) Mod 10) And InStr(Join(Tmp), (Tmp(js) + j * 2) Mod 10) Then
                Res(i, 1) = Res(i, 1) & " " & Tmp(js) & (Tmp(js) + j) Mod 10 & (Tmp(js) + j * 2) Mod 10
            End If
        Next js
        For js = 0 To UBound(Tmp)
            If InStr(Join(Tmp), (Tmp(js) + j) Mod 10) And InStr(Join(Tmp), (Tmp(js) + j * 2) Mod 10) _
            And InStr(Join(Tmp), (Tmp(js) + j * 3) Mod 10) Then
                Res(i, 1) = Res(i, 1) & " " & Tmp(js) & (Tmp(js) + j) Mod 10 & (Tmp(js) + j * 2) Mod 10 _
                & (Tmp(js) + j * 3) Mod 10
            End If
        Next js
    Next j
Res(i, 1) = Trim(Res(i, 1))
Next i
With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(Res)
Tmp = Split(Res(i, 1))
    For j = 0 To UBound(Tmp)
        If .exists(Tmp(j)) = False Then .Add Tmp(j), ""
    Next j
    Res(i, 1) = Join(.keys)
    .RemoveAll
Next i
End With

Sheet1.Range("H2").CurrentRegion.ClearContents
Sheet1.Range("H2").Resize(UBound(SArr), 1) = Res
End Sub
code này đã loại bỏ những kết quả trùng trong 1 ô cho đỡ rối mắt & đã bổ sung cho dãy 4 số.
Có 1 vài kết quả code tính đúng mà đọc kết quả xong phải nghĩ 1 lúc mới ra cách tính.

Thế mới biết số má vất vả thế nào. Bạn nhỉ?!$@!!//**/
Vui vẻ nhé bạn
Dòng số 22 cái kết quả 593 là điều kiện gì mà nó ra em cũng ko hiểu? Thanks anh
 

File đính kèm

  • GPExcel.xlsx
    11.4 KB · Đọc: 2
Lần chỉnh sửa cuối:
Thôi em hiểu rồi, 5+4=9 , 9+4 =13 lấy 3.Thanks anh
Xem giờ viết bài thấy sau 31 phút bạn mới hiểu được chuỗi 593. Gặp chuỗi 4 số coi chừng nhũn não.
Thôi thì tham sân si, bớt gì tốt đó.

Hy vọng bạn gặp nhiều may mắn.
Thân chào.
 
Web KT
Back
Top Bottom