Составить программу, печатающую значение true, если указанное явление истинно, и false в противном случае:
цифры данного четырехзначного числа N являются членами геометрической прогрессии.
На языке Паскаль!
Другие языки программирования и технологии
Составить программу, печатающую значение true, если указанное явление истинно, и false в противном случае.
abcd — число
Из них можно получить 12 чисел, сгруппировав их по 3, и попытаться составить из них равенство.
Числа:
x1 = b/a
y1 = c/a
z1 = d/a
x2 = a/b
y2 = c/b
z2 = d/b
x3 = a/c
y3 = b/c
z3 = d/c
x4 = a/d
y4 = b/d
z4 = c/d
А дальше просто группировать и сравнивать.
И так несколько раз для всех вариантов.
Аааа, прошу прощенья, не сказано же, что они подряд идут друг за другом. Тогда всё сложнее. Нужно найти наименьшее из соотношений и попытаться с его помощью от наименьшей цифры построить прогрессию, в которую входят другие цифры
Но если подумать, то мы не можем использовать в качестве множителя тройку и дробные числа. Остаются только 1 и 2. Для 1 получаем 1111, а для 2 — 1248 и их комбинации.
Ещё число, содержащее ноль, не подходим нам сразу, такие числа сразу в false
Короче, реши сперва аналитически.
1111
1248
1284
1428
1482
1824
1842
2148
2184
2481
2418
2841
2814
4182
4128
4281
4218
4812
4821
8124
8142
8241
8214
8412
8421
Из них можно получить 12 чисел, сгруппировав их по 3, и попытаться составить из них равенство.
Числа:
x1 = b/a
y1 = c/a
z1 = d/a
x2 = a/b
y2 = c/b
z2 = d/b
x3 = a/c
y3 = b/c
z3 = d/c
x4 = a/d
y4 = b/d
z4 = c/d
А дальше просто группировать и сравнивать.
И так несколько раз для всех вариантов.
Аааа, прошу прощенья, не сказано же, что они подряд идут друг за другом. Тогда всё сложнее. Нужно найти наименьшее из соотношений и попытаться с его помощью от наименьшей цифры построить прогрессию, в которую входят другие цифры
Но если подумать, то мы не можем использовать в качестве множителя тройку и дробные числа. Остаются только 1 и 2. Для 1 получаем 1111, а для 2 — 1248 и их комбинации.
Ещё число, содержащее ноль, не подходим нам сразу, такие числа сразу в false
Короче, реши сперва аналитически.
1111
1248
1284
1428
1482
1824
1842
2148
2184
2481
2418
2841
2814
4182
4128
4281
4218
4812
4821
8124
8142
8241
8214
8412
8421
Ильхом Джалилов
Проще сначала отсортировать числа по их модулям (на случай отрицательного множителя).
Ильхом Джалилов
А впрочем, невнимательно прочитал. Отрицательными цифры быть не могут, можно без модуля.
Олег Горковенко
1111 есть - а где же 2222, 3333, ..Не все нашел, это точно.
Таких чисел не так уж и много. С учетом слова "являются", а не "образуют" - чуть больше, но не на много. 33 всего, если бы образовывали - было бы 11.
Артур Минсалимов
похоже, я нашёл не все числа?
Похожие вопросы
- Пожалуйста, будтье так добры, помочь решить задчаку в Паскале: Составьте программу, печатающую последнее слово в ...
- С++.Составить программу для определения таблицы значений функции у в произвольном диапазоне [a, b
- составить программу решения задачи дано 10 чисел определить сколько из них принимает наибольшее значение.как решить?*(((
- Помогите составить программу на pascal
- Нужно составить программу на ассемблере
- Помогите составить программу на паскале!
- Составьте программы и проверьте их выполняемость на Паскале
- Составьте программу, имитирующую арифметический калькулятор.
- найти все семизначные числа, которые делятся на 15 и записываются только цифрами 0 и 1. Составить программу на паскале
- Помогите составить программу на языке Pascal