Замена цифр числа,не используя массивов - QBasic
Формулировка задачи:
Доброго времени суток.
Нужна помощь по данной задаче:
С клавиатуры вводится число n и k (произвольные).Нужно заменить в числе n все нечетные цифры на данное число k(Создавать и использовать массивы нельзя).
Н-р:
Ввод: n=1233461
k=5
Вывод:m=1533551
Вообщем,не будь бы запрета на массив,то никаких проблем бы и не было,а так..Есть идея,как делать,но оформить в бэйсике не получается.Суть моей идеи в том,чтобы в цикле While n>0 брать последнюю цифру,проверять её на четность-и при надобности менять,с этим как бы разобрался,но проблема в самом сборе конечного числа.
Заранее спасибо
Решение задачи: «Замена цифр числа,не используя массивов»
textual
Листинг программы
DECLARE FUNCTION M! (i!) CLS DIM SHARED N AS STRING DIM k AS STRING N = "1233461" k = "5" FOR i = 1 TO LEN(N) IF M(i) MOD 2 = 0 THEN MID$(N, i, 1) = k NEXT i PRINT N END FUNCTION M (i) M = VAL(MID$(N$, i, 1)) END FUNCTION
Объяснение кода листинга программы
В этом коде выполняется замена чётных цифр в числе, записанном в строке N, на число k.
- Объявляется функция M с одним аргументом i.
- В функции M происходит получение числового значения из строки с помощью функции VAL.
- В основной программе объявляются две строки: N и k.
- Строка N содержит число для обработки.
- Строка k содержит число, на которое должны быть заменены чётные цифры.
- Цикл FOR проходит по всем символам строки N.
- Если текущий символ является чётным числом, то он заменяется на число k с помощью функции MID$ и оператора присваивания.
- После завершения цикла выводится обновлённая строка N. Функция M и цикл FOR выполняются только один раз, так как количество итераций цикла определяется длиной строки N, а функция M используется только внутри цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д