Пятница, 24.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Целочисленная арифметика.
ABCDFДата: Четверг, 20.11.2008, 16:41 | Сообщение # 1
Знакомый
Группа: Пользователи
Сообщений: 10
Репутация: 0
Замечания: 0%
Статус: Offline
Дано целое длинное число A. Определить, есть ли среди его цифр равные.
 
SeqularДата: Суббота, 22.11.2008, 22:03 | Сообщение # 2
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
ABCDF, А в чем проблема-то?

Поддерживаю также проект сообщество молодых сисадминов
 
ABCDFДата: Суббота, 22.11.2008, 23:31 | Сообщение # 3
Знакомый
Группа: Пользователи
Сообщений: 10
Репутация: 0
Замечания: 0%
Статус: Offline
Проблема в том что я в паскале не разбираюсь, меня клинит после Basic'a
 
SeqularДата: Суббота, 22.11.2008, 23:33 | Сообщение # 4
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
ABCDF, Хорошо, скажи, как бы ты стал ее решать на Basic-е?
Кстати, насколько длинное число дано? Просто если оно по длинне <= 255 символов, то имеет смысл использовать строку... А там проще еще даже smile


Поддерживаю также проект сообщество молодых сисадминов
 
ABCDFДата: Суббота, 22.11.2008, 23:38 | Сообщение # 5
Знакомый
Группа: Пользователи
Сообщений: 10
Репутация: 0
Замечания: 0%
Статус: Offline
У меня специальность математик так что я в программирование не силён я незнаю как вообще реализовать программу, я могу только математические формулы выводить и доказывать их.
 
SeqularДата: Суббота, 22.11.2008, 23:45 | Сообщение # 6
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
ABCDF, Ну допустим так... Смысл решения, имхо, состоит в том, чтобы число разделить на составляющие и их сравнить друг с другом.

Как разбить число на разряды?
a mod 10 - единицы числа a
Далее можем занести это значение в переменную, скажем в массиве. Разделить число на 10 div-ом и повторить операцию до тех пор, пока не дойдем до последнего разряда. И тогда у нас будет 0 в остатке и массив с разрядами числа.
Далее пробегаем по элементам массива и сравниваем, повторяется ли где-нибудь первый (сравниваем с 2..n элементами) потом второй (сравниваем с 3..n) элементами, и так далее n-1-ый сравниваем с n-ым элементом. Если хотябы одно совпадение есть - выходим из цикла и выводим соответствующее сообщение


Поддерживаю также проект сообщество молодых сисадминов
 
ABCDFДата: Воскресенье, 23.11.2008, 00:10 | Сообщение # 7
Знакомый
Группа: Пользователи
Сообщений: 10
Репутация: 0
Замечания: 0%
Статус: Offline
Спасибо попробую сделать.
 
SeqularДата: Воскресенье, 23.11.2008, 21:06 | Сообщение # 8
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
ABCDF, попробуй! Отпишись в любом случае

Поддерживаю также проект сообщество молодых сисадминов
 
AlexanderДата: Воскресенье, 23.11.2008, 21:51 | Сообщение # 9
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (ABCDF)
У меня специальность математик так что я в программирование не силён я незнаю как вообще реализовать программу, я могу только математические формулы выводить и доказывать их.

Ага, математик который не умеет составлять циклы haha . Это всё равно, что поэт не умеющий читать haha . Составлять алгоритмы математик обязан не хуже, чем программист.
З.Ы. 00 чему равно?


Скажем дружно- нафиг нужно!
 
SeqularДата: Воскресенье, 23.11.2008, 21:52 | Сообщение # 10
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Alexander, Ага, Алекс пришел шухер нагонять :))) Кинь свою асю в личку мне!

Поддерживаю также проект сообщество молодых сисадминов
 
ABCDFДата: Понедельник, 24.11.2008, 02:37 | Сообщение # 11
Знакомый
Группа: Пользователи
Сообщений: 10
Репутация: 0
Замечания: 0%
Статус: 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
Репутация: 16
Замечания: 0%
Статус: 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
Репутация: 0
Замечания: 0%
Статус: Offline
Alexander, спасибо за помощь. Книжку обязательно прочту.
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;