Целочисленная арифметика.
|
|
ABCDF | Дата: Четверг, 20.11.2008, 16:41 | Сообщение # 1 |
Знакомый
Группа: Пользователи
Сообщений: 10
Статус: Offline
| Дано целое длинное число A. Определить, есть ли среди его цифр равные.
|
|
| |
Seqular | Дата: Суббота, 22.11.2008, 22:03 | Сообщение # 2 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| ABCDF, А в чем проблема-то?
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
ABCDF | Дата: Суббота, 22.11.2008, 23:31 | Сообщение # 3 |
Знакомый
Группа: Пользователи
Сообщений: 10
Статус: Offline
| Проблема в том что я в паскале не разбираюсь, меня клинит после Basic'a
|
|
| |
Seqular | Дата: Суббота, 22.11.2008, 23:33 | Сообщение # 4 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| ABCDF, Хорошо, скажи, как бы ты стал ее решать на Basic-е? Кстати, насколько длинное число дано? Просто если оно по длинне <= 255 символов, то имеет смысл использовать строку... А там проще еще даже
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
ABCDF | Дата: Суббота, 22.11.2008, 23:38 | Сообщение # 5 |
Знакомый
Группа: Пользователи
Сообщений: 10
Статус: Offline
| У меня специальность математик так что я в программирование не силён я незнаю как вообще реализовать программу, я могу только математические формулы выводить и доказывать их.
|
|
| |
Seqular | Дата: Суббота, 22.11.2008, 23:45 | Сообщение # 6 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| ABCDF, Ну допустим так... Смысл решения, имхо, состоит в том, чтобы число разделить на составляющие и их сравнить друг с другом. Как разбить число на разряды? a mod 10 - единицы числа a Далее можем занести это значение в переменную, скажем в массиве. Разделить число на 10 div-ом и повторить операцию до тех пор, пока не дойдем до последнего разряда. И тогда у нас будет 0 в остатке и массив с разрядами числа. Далее пробегаем по элементам массива и сравниваем, повторяется ли где-нибудь первый (сравниваем с 2..n элементами) потом второй (сравниваем с 3..n) элементами, и так далее n-1-ый сравниваем с n-ым элементом. Если хотябы одно совпадение есть - выходим из цикла и выводим соответствующее сообщение
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
ABCDF | Дата: Воскресенье, 23.11.2008, 00:10 | Сообщение # 7 |
Знакомый
Группа: Пользователи
Сообщений: 10
Статус: Offline
| Спасибо попробую сделать.
|
|
| |
Seqular | Дата: Воскресенье, 23.11.2008, 21:06 | Сообщение # 8 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| ABCDF, попробуй! Отпишись в любом случае
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
Alexander | Дата: Воскресенье, 23.11.2008, 21:51 | Сообщение # 9 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Quote (ABCDF) У меня специальность математик так что я в программирование не силён я незнаю как вообще реализовать программу, я могу только математические формулы выводить и доказывать их. Ага, математик который не умеет составлять циклы . Это всё равно, что поэт не умеющий читать . Составлять алгоритмы математик обязан не хуже, чем программист. З.Ы. 00 чему равно?
Скажем дружно- нафиг нужно!
|
|
| |
Seqular | Дата: Воскресенье, 23.11.2008, 21:52 | Сообщение # 10 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Alexander, Ага, Алекс пришел шухер нагонять :))) Кинь свою асю в личку мне!
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
ABCDF | Дата: Понедельник, 24.11.2008, 02:37 | Сообщение # 11 |
Знакомый
Группа: Пользователи
Сообщений: 10
Статус: Offline
| Alexander, Поверь мне алгоритмы я умею составлять у меня проблемы с тем как составлять программы. З.Ы. 0 в 0 степени будет неопределённость вот доказательство: Для начала покажем почему остальные числа в нулевой степени равны единице: a^0 = a^(n-n) = (a^n)/(a^n) = (a/a)^(n-n) = 1^0 но (a^n)/(a^n) = b/b = 1, следовательно a^0 = 1 Но если a=0, то получится деление на ноль, которое не определено.
|
|
| |
Alexander | Дата: Понедельник, 24.11.2008, 03:45 | Сообщение # 12 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Quote (ABCDF) Alexander, Поверь мне алгоритмы я умею составлять у меня проблемы с тем как составлять программы. Ну чтож, тогда так: 1) читаем число с клавиатуры(LongInt- самое большое из стандартного набора). 2) Переводим это число в строку(тип string), для этого есть стандартная функция str. Описание всех функций есть в хелпе. Хелп на русском языке можно скачать в разделе "файлы". 3) Code for i:=1 to n-1 do for j:=1 to n do if s[i]=s[j] then begin WriteLn('есть'); halt; end; P.S. Можно было ещё логарифмировать и экспонировать, тогда получим неопределённость вида [0*-бесконечность]. А многие мат. пакеты единицу выдают. P.S.S. Почитай Кнута, он сам математик и его книги(всего у него 6 томов) напичканы мат. обоснованиями и доказательствами правильности алгоритмов- для математика самое то.
Скажем дружно- нафиг нужно!
Сообщение отредактировал Alexander - Понедельник, 24.11.2008, 03:49 |
|
| |
ABCDF | Дата: Вторник, 25.11.2008, 00:24 | Сообщение # 13 |
Знакомый
Группа: Пользователи
Сообщений: 10
Статус: Offline
| Alexander, спасибо за помощь. Книжку обязательно прочту.
|
|
| |