Круглые числа. Задача с олимпиады. - QBasic

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

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

Задача с прошлогодней олимпиады (10-11 кл). Задача 2. Круглые числа. Будем называть числа круглыми, если они содержат в своей записи только цифры 0 и 5. Составим последовательность круглых чисел в порядке возрастания: 0, 5, 50, 55, 500, 505 и так далее.

Написать программу

, которая находит

К

-ое по порядку в этой последовательности круглое число.

Формат входных данных

С клавиатуры вводится натуральное число

К

- номер круглого числа в последовательности (0 <

K

< 500).

Формат выходных данных

Выведите на экран требуемое круглое число.

Примеры входных и выходных данных

Ввод
2
6
Вывод
5
505
Тут вроде понятно, надо числа в двоичный код перевести и на 5 умножить. Но вот как на qBasic'е перевести числа в двоичный код?

Решение задачи: «Круглые числа. Задача с олимпиады.»

textual
Листинг программы
INPUT "vvedite k: ", k
DO
    res = res + (k MOD 2) * 10 ^ i
    k = k \ 2
    i = i + 1
LOOP UNTIL k = 0
res = res * 5
PRINT res

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

  1. Вводится число k.
  2. Составляется цикл, который выполняется до тех пор, пока k не станет равным нулю.
  3. Внутри цикла выполняется операция побитового исключающего OR (k MOD 2), результат которой умножается на 10 в степени i и добавляется к переменной res.
  4. k делится на 2.
  5. i увеличивается на 1.
  6. Результат выводится на экран.

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

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