Задача на строки и числа. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача на строки и числа. |
1qsd |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Kost Репутация: 0 |
Здравствуйте. Помогите решить следующую задачу.
Записаны все степени числа 2^k (0<=k<=100). Переписать их в одну строку так, чтобы полученное число было наименьшим. Например: k=5, число 11623248 (1 16 2 32 4 8) k=10, число 10241128162256324512648 (1024 1 128 16 2 256 32 4 512 64 8) |
volvo |
Сообщение
#2
|
Гость |
Фактически задача сводится к сортировке полученных чисел - степеней двойки (только сортировать их надо НЕ как числа, а как строки)... После того, как массив таких строк будет отсортирован по возрастанию, достаточно выписать все его элементы подряд...
|
мисс_граффити |
Сообщение
#3
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
volvo,
var s1,s2:string; не получается так... надо вводить дополнительное условие: если одна строка входит в другую с начала... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#4
|
Гость |
Цитата если одна строка входит в другую с начала... Объясни мне тогда, как задать вот этот момент:1024 < 1 < 128 ? Я, кстати, не написал, что надо сравнивать лексикографически... Над методом сортировки сейчас думаю... Добавлено через 2 мин. Кстати, есть еще один момент: 2100 - это в любом случае длинная арифметика... |
мисс_граффити |
Сообщение
#5
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Цитата Объясни мне тогда, как задать вот этот момент у меня получилось вот что.... program sort; -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#6
|
Гость |
Не пойдет... Смотри, что получается в твоей программе при n = 15:
1024 1 128 16 16384 2 2048 256 32 4096 4 512 64 8 8192 |
мисс_граффити |
Сообщение
#7
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
сорри, недосортировывала....
исправила. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#8
|
Гость |
А вот мой вариант...
program sort; |
volvo |
Сообщение
#9
|
Гость |
А вот, если кому интересно, полная программа, включая генерацию всех степеней двойки при 1 <= N <= 100, безо всякой длинной арифметики...
Прикрепленные файлы minimal.pas ( 1.01 килобайт ) Кол-во скачиваний: 305 |
Текстовая версия | 6.10.2024 23:55 |