Перейти к содержимому

User №848

Пользователи
  • Публикации

    362
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем User №848


  1.  

    Ну или определить границы поиска, да.

     

    Я всё достаточно хорошо продумал, прежде чем приступить к написанию, лол.

    Но из-за громоздких конструкций и смежных одинаковых операторов достаточно сложно было выявить ошибки и неточности.

    Ред, что со Сканфом? Циська нормально работает вот, так что дело в сайте.

    0

  2.  

    Если ты возьмёшь 4xyz, то второе число будет как 12abc, что уже пятизначное число и не соответствует условию, нет?

     

    Я тебя не так понял, видимо. Теперь ясно.

    Я сделал иначе: Взял как край число, ближайшее меньшее разноциферное к в три раза меньшему, чем 9876 - последнего числа с различными цифрами в составе.

    0

  3. Оптимизировал выполнение с 10-15 секунд до доли секунды.

    Option Explicit
    Sub Rebus()
    Dim c As Integer
    Dim b As Integer
    Dim m As Integer, u As Integer, h As Integer, a As Integer, s As Integer, l As Integer, o As Integer, n As Integer
    Dim W As String
    W = "Числа: " + vbCrLf
    For c = 1023 To 3289
    m = c  1000
    u = (c  100) Mod 10
    h = (c  10) Mod 10
    a = c Mod 10
    If (m <> u) And (m <> h) And (m <> a) And (u <> h) And (u <> a) And (h <> a) Then
    b = c * 3
        s = b  1000
        l = (b  100) Mod 10
        o = (b  10) Mod 10
        n = b Mod 10
        If (s <> l) And (s <> o) And (s <> n) And (l <> o) And (l <> n) And (o <> n) Then
            If (m <> s) And (m <> l) And (m <> o) And (m <> n) And (u <> s) And (u <> l) And (u <> o) And (u <> n) And (h <> s) And (h <> l) And (h <> o) And (h <> n) And (a <> s) And (a <> l) And (a <> o) And (a <> n) Then
            If 3 * c = b Then W = W + "3*" + Str(c) + "=" + Str( + vbCrLf
            End If
        End If
    End If
    Next
    MsgBox W
    End Sub
    
    '2 =1 1=3 1 =4 2 = 3 2 = 4 3 = 4
    0

  4. Урсула, помоги оптимизировать:

    Option Explicit
    Sub Rebus()
    Dim c As Integer
    Dim b As Integer
    Dim m As Integer, u As Integer, h As Integer, a As Integer, s As Integer, l As Integer, o As Integer, n As Integer
    Dim W As String
    W = "Числа: " + vbCrLf
    For c = 1023 To 3289
    m = c  1000
    u = (c  100) Mod 10
    h = (c  10) Mod 10
    a = c Mod 10
    If (m <> u) And (m <> h) And (m <> a) And (u <> h) And (u <> a) And (h <> a) Then
        For b = 1023 To 9876 Step 3
        s = b  1000
        l = (b  100) Mod 10
        o = (b  10) Mod 10
        n = b Mod 10
        If (s <> l) And (s <> o) And (s <> n) And (l <> o) And (l <> n) And (o <> n) Then
            If (m <> s) And (m <> l) And (m <> o) And (m <> n) And (u <> s) And (u <> l) And (u <> o) And (u <> n) And (h <> s) And (h <> l) And (h <> o) And (h <> n) And (a <> s) And (a <> l) And (a <> o) And (a <> n) Then
            If 3 * c = b Then W = W + "3*" + Str(c) + "=" + Str( + vbCrLf
            End If
        End If
        Next
    End If
    Next
    MsgBox W
    End Sub
    
    '2 =1 1=3 1 =4 2 = 3 2 = 4 3 = 4
    Я уже увеличил скорость выполнения. (выбрав для второго цикла шаг = 3) Всё-таки, можно ещё ускорить?
    0

  5. Это так и надо, что оно выглядит так громоздко?

    Спидька. Реши задачу: Есть такое четырёхзначное число MUHA, умножив которое на 3, получим другое четырёхзначное число - SLON. M, U, H, A, S, L, O и N - все различные цифры. M и S - не нули.
    0

  6. &nbsp;

    Алгоритм смотрится каким-то неоптимизированным, проще никак? .-.

    У меня есть идеи, но это позже.

    Можно обойтись двумя переменными, но визуально будет ещё больше.

    Но ты всегда можешь решить сам. Будем мериться, у кого длинее. ^_^

    0

  7. &nbsp;

    Вот что висит у нас в городе:

    HJhHCSi3dCw.jpg

    &nbsp;

    На днях видел девушк с украинским паспоротом в больнице...

    Сулька решила задачку, таки:

    Option Explicit
    Sub Rebus()
    Dim c As Integer
    Dim b As Integer
    Dim m As Integer, u As Integer, h As Integer, a As Integer, s As Integer, l As Integer, o As Integer, n As Integer
    Dim W As String
    W = "Числа: "
    For c = 1023 To 3289
    m = c  1000
    u = (c  100) Mod 10
    h = (c  10) Mod 10
    a = c Mod 10
    If (m <> u) And (m <> h) And (m <> a) And (u <> h) And (u <> a) And (h <> a) Then
        For b = 1023 To 9876
        s = b  1000
        l = (b  100) Mod 10
        o = (b  10) Mod 10
        n = b Mod 10
        If (s <> l) And (s <> o) And (s <> n) And (l <> o) And (l <> n) And (o <> n) Then
            If (m <> s) And (m <> l) And (m <> o) And (m <> n) And (u <> s) And (u <> l) And (u <> o) And (u <> n) And (h <> s) And (h <> l) And (h <> o) And (h <> n) And (a <> s) And (a <> l) And (a <> o) And (a <> n) Then
            If 3 * c = b Then W = W + "3*" + Str(c) + "=" + Str( + vbCrLf
            End If
        End If
        Next
    End If
    Next
    MsgBox W
    End Sub
    
    '2 =1 1=3 1 =4 2 = 3 2 = 4 3 = 4
    
    0

  8. Скилл постепенно совершенствуется, но ничего особо серьезного я так и не пробовал еще писать.

    Ну да, а я прям каждый день пишу. D83DDE0F.png

    Но мои знания таки совсем уж небольшие в этой области. Хотя скорость понимания и осваивания замедляется ленью, и только.

    0

  9. Хе-хе, я для подобных случаев листочек завел, в который ставлю крестики, если забываю или не успеваю сделать заранее запланированные дела. (:

    Мне бы такие креситики, чтобы записывать многослойные звуки или биты со всеми примочками. о_О
    0

  10. Вот с КОТ+КОТ=ТОК проще было

    Option Explicit
    Sub CatPlus()
    Dim a As Integer
    Dim b As Integer
    For a = 102 To 987
    If (a  100 <> a  10) And (a  10 = 0) And (a  100 <> a Mod 10) Then
    For b = 102 To 987
    If (b  100 = a Mod 10) And (b  10 = 0) And (a  100 <> b Mod 10) Then If 2 * a = b Then MsgBox Str(a)
    Next
    End If
    Next
    End Sub
    Ответ: нет решений для этого ребуса
    0

×