1. дано натуральное к.напечатать к-ю цифру последовательности 12345678910111213, в которой выписаны подряд все натуральные числа.
2. дан текст.определить является ли он правильной десятичной записью целого числа.
Сообщение отредактировано: T@ty@n@ -
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| T@ty@n@ |
Сообщение
#1
|
|
Гость |
М
1. дано натуральное к.напечатать к-ю цифру последовательности 12345678910111213, в которой выписаны подряд все натуральные числа. 2. дан текст.определить является ли он правильной десятичной записью целого числа. Сообщение отредактировано: T@ty@n@ - |
![]() ![]() |
| klem4 |
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Мой вариант первой задачи:
function DigitInfo(const k: LongInt): Char; T@ty@n@ Переименуй название темы ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
| hardcase |
Сообщение
#3
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
Мой вариант первой задачи: А это мой. Только целочисленная арифметика и никаких str. Код function GetDigit(k: integer): integer; var counter: integer; // счетчик натуральных чисел number: integer; // текущее разбираемое число needNewNumber: boolean; // флаг - "завершился ли разбор числа?" maxDecimalMask: integer; // максимальная маска десятичного разряда nextDecimalMask: integer; // maxDecimalMask * 10 decimalMask: integer; // текущая маска десятичного разряда procedure Init; begin counter := 0; maxDecimalMask := 1; nextDecimalMask := maxDecimalMask * 10; needNewNumber := true; end; function GetNextDigit: integer; var digit: integer; begin // получаем следующее натуральное число if needNewNumber then begin needNewNumber := false; inc(counter); number := counter; if (counter mod nextDecimalMask) = 0 then begin maxDecimalMask := nextDecimalMask; nextDecimalMask := maxDecimalMask * 10; end; // сбрасываем маску decimalMask := maxDecimalMask; end; // получаем число в разряде digit := number div decimalMask; number := number mod decimalMask; decimalMask := decimalMask div 10; // если маска нулевая, то мы разобрали число if decimalMask = 0 then needNewNumber := true; // возвращаем результат GetNextDigit := digit; end; var i: integer; digit: integer; begin Init; // тупо перебираем k-разрядов digit := 0; for i := 1 to k do digit := GetNextDigit; // возращаем результат GetDigit := digit; end; но с инвариантом ессно красивше получается. Сообщение отредактировано: hardcase - -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
T@ty@n@ помогите! 12.06.2007 21:51
klem4 Хм, второе, последнее предупреждение 1. Заголовок … 12.06.2007 22:04
volvo Ну, тему все одно за нарушение Правил закроют... К… 12.06.2007 22:06
klem4 У мну тоже без строк легко можно ...
round(exp((d… 13.06.2007 11:50
Malice
Может кто еще решения предложит ? Интересная зада… 13.06.2007 16:13
hardcase
Не догнал с похмелья почему нельзя сделать в лоб… 13.06.2007 20:26
klem4 да уж)) :good: 13.06.2007 18:14
volvo hardcase, а ВСЕ решения нельзя было потестить? :r… 13.06.2007 20:46
klem4
Ну один из них точно не прокатит, ибо там огра… 13.06.2007 21:10
volvo Андрей, есть просьба: то решение, которое я привод… 13.06.2007 21:54
мисс_граффити Все, конечно, очень мило, но правила есть правила.… 14.06.2007 3:30![]() ![]() |
|
Текстовая версия | 6.11.2025 21:17 |