Состоят ли два числа из одних и тех же цифр - QBasic

Узнай цену своей работы

Формулировка задачи:

Дано два числа A и B Определить, состоят ли они из одних и тех же цифр? Иными словами, можно ли одно из чисел путём перестановки цифр превратить в другое число (и наоборот естественно)? ... Тут алгоритмов решения этой задачи множество... 1. Вероятно можно использовать массивы и потом их сравнить 2. Наверное можно задать числа как строки и отсортировать. 3. ТС предложил своё, как ему кажется, более рациональное решение. Вопрос 1. А можно ли в данной задаче использовать рекурсию? 2. Как использовать такие свойства этих чисел, например Сумма цифр обоих чисел должна быть равна. Или это ничего не даёт? 3. Наверняка есть особые алгоритмы, для какого то особого класса чисел? Например двоичных чисел? 4. Ребята, пишите. ТС интересуют ЛЮБЫЕ алгоритмы. Чем больше, тем лучше. Возможно у вас могут быть свои оригинальные решения, или замечания, или что-то, что вы знаете только одни... (пусть узнают и другие)

Решение задачи: «Состоят ли два числа из одних и тех же цифр»

textual
Листинг программы
Sub main()
MsgBox S(12345) = S(54321)
End Sub
 
Function S(L As Long) As String
S = String$(10, "0")
While L
  Mid$(S, L Mod 10 + 1, 1) = Mid$(S, L Mod 10 + 1, 1) + 1
  L = L \ 10
Wend
End Function

Объяснение кода листинга программы

В этом коде:

  1. Создается функция S(L As Long) As String.
  2. В функции устанавливается значение S как String$(10, 0) — это строка из 10 нулей.
  3. В цикле While L выполняется следующее:
    1. В каждой итерации цикла значение Mid$(S, L Mod 10 + 1, 1) увеличивается на 1.
    2. После каждой итерации значение L делится на 10.
  4. Цикл продолжается, пока L больше 0.
  5. В конце функции возвращается значение S.
  6. В основной части кода вызывается функция S(12345) и выводится сообщение MsgBox с результатом сравнения S(12345) и S(54321). Этот код проверяет, являются ли два числа, представленные в виде строк, одинаковыми. Он делает это, сравнивая каждую цифру в числах по отдельности. Если какая-либо цифра в одном числе больше, чем соответствующая цифра в другом числе, то числа не являются одинаковыми.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы