IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Функция
@SNAKE@
сообщение 12.11.2007 16:20
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Люди помогите пожайлуста решить эту задачу или хотябы объясните что делать с суммой К=1,2...Заранее всем спасибо
Описать функцию, которая возвращает сумму К=1,2,… наименьших цифр, входящих в запись числа типа Longint .
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 9)
klem4
сообщение 12.11.2007 18:51
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


пусть дано число N = 14021233, K = 3

результат = 0 + 1 + 1 = 2 ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
@SNAKE@
сообщение 12.11.2007 19:02
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


а почему к=3
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 12.11.2007 19:39
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(@SNAKE@ @ 12.11.2007 19:02) *

а почему к=3

Для примера smile.gif
А вообще, можно поступить так - перевести число в строку, отсортировать символы по возрастанию, сложить К первых символов, переведя каждое в число (ord(s[i])-$30).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
@SNAKE@
сообщение 12.11.2007 19:47
Сообщение #5





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


а зачем переводить каждое в число (ord(s[i])-$30).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 12.11.2007 20:05
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Чтоб сложить.. Я имел ввиду вот это:
N = 14021233, K = 3
переводим в строку: s:="14021233";
сортируем: s:="01122334";
складываем: 0+1+1. Но что бы из "0" получить 0 надо из кода символа вычесть $30 (код нуля как раз).

Но если не хочешь через строку можно и по-другому.. Например завести массив [0..9], разложить число на цифры и посчитать количество каждой цифры с помощью этого массива. Примерно так:

var  a:array [0..9] of byte;
..
begin
x:=14021233; k:=3;
while x>0 do
begin
inc (a[x mod 10]); x:=x div 10;
end;

Потом пройтись за 1 проход по массиву и сложить нужной колво чисел smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
@SNAKE@
сообщение 12.11.2007 22:30
Сообщение #7





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


у меня тут возникло несколько вопросов
1)масив берётся произвольно или нет
2)x и k берутся произвольно или нет
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 12.11.2007 22:48
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(@SNAKE@ @ 12.11.2007 22:30) *

у меня тут возникло несколько вопросов
1)масив берётся произвольно или нет
2)x и k берутся произвольно или нет

1) который ? Вспомогательный ? Нет, он заполняется по введенному Х.
2) скорее всего с клавиатуры их вводить надо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
@SNAKE@
сообщение 12.11.2007 22:55
Сообщение #9





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


вот про этот масив var a:array [0..9] of byte;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 12.11.2007 23:10
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(@SNAKE@ @ 12.11.2007 22:55) *

вот про этот масив var a:array [0..9] of byte;

а ты понимаешь его назначение ? Если нет, то разберись с алгоритмом или делай по первому варианту со строкой.. Вообще он заполняется выше приведенным кодом. Но я не настаиваю на этом варианте решения, он короче, но со строкой проще.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 12:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"