Проверить является ли число перевертышем - QBasic
Формулировка задачи:
Нужно решить задачи в QBASIC
1. Дано четырехзначное число. Проверить является ли данное число перевертышем( например, 1221, 2222). Тут надо использовать оператор FOR (это не обязательно, если можно решить по другому)
2. Написать программу нахождения первой цифры числа. Поменять местами первую и последнюю цифры. Тут надо использовать оператор WHILE (это не обязательно, если можно решить по другому)
3. Даны натуральные числа m и n. Найти такие натуральные числа p и q, чтобы p/q = m/n. Тут сказали надо оператор LOOP использовать (это не обязательно, если можно решить по другому)
Помогите решить хоть что-то. Заранее благодарен.
Решение задачи: «Проверить является ли число перевертышем»
textual
Листинг программы
INPUT "vvedite chislo"; a b = a DO b = b \ 10 k = k + 1 LOOP UNTIL b = 0 q = k \ 2 w = k - q * 2 FOR i = 1 TO q c1 = c1 + (a MOD 10) * 10 ^ (q - i) c2 = c2 + ((a \ (10 ^ (q + w))) MOD 10) * 10 ^ (i - 1) a = a \ 10 NEXT IF c1 = c2 THEN PRINT "da" ELSE PRINT "net"
Объяснение кода листинга программы
- Ввод числа с клавиатуры и присвоение его переменной
a. - Переменная
bинициализируется значением переменнойa. - Цикл DO-LOOP проверяет, является ли число перевертышем. Число делится на 10 и переменная
kувеличивается на 1 до тех пор, пока число не станет равным нулю. - Переменная
qинициализируется значением переменнойkделённой на 2. - Переменная
wинициализируется значением переменнойkминус два раза значение переменнойq. - Цикл FOR проверяет каждую цифру числа от большего разряда к меньшему.
- Переменная
c1накапливает сумму цифр числа в обратном порядке. - Переменная
c2накапливает сумму цифр числа в прямом порядке. - Число делится на 10 и переменная
aобновляется. - Цикл повторяется для каждой цифры числа.
- Если
c1равноc2, то выводитсяda, иначе выводитсяnet.