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

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

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

> нахождение суммы M последний чисел числа N., Савсем не понимаю как записать...
Andrewshkovskii
сообщение 25.10.2006 17:40
Сообщение #1


Бывалый
***

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

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


Задание :
Дано натуральное число n.найди сумму m последних чисел числа n.
Тоесть
допустим вводим число n 1234
вводим число m 2
Программа должна считать сумму 3 + 4 .
ТОесть m кол-во чифр с конца.
Пример 2
{n = 12345
m = 3
3+4+5=12.}
Вот так.

я не могу понять,как программу будет распозвовать последние числа..у меня есть намеки на div и mod .
Код
const
y=10;
C:=a mod y;
writeln ('C= ',c:4:4);
readkey;

так он находит последнюю чифру числа а...а вот как сделать так,что бы он искал столько чифр,сколько я захочу(переменная m).

Сообщение отредактировано: Andrewshkovskii - 25.10.2006 18:02
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 25.10.2006 19:28
Сообщение #2


Гость






Смотри:
  m := {сколько_цифр_числа_обрабатывать};
s := 0; { вначале сумма цифр = 0 }

{
Пока само число не станет равным 0 (почему это произойдет, смотри ниже)
или пока не обработано достаточное количество цифр (условие m > 0)
делать:
}
while (n > 0) and (m > 0) do begin
{
Сумму увеличиваем на последнюю цифру числа N
(так как число в десятичной системе счисления, его последнюю цифру
получаем как остаток (mod) от деления числа на 10)
}
s := s + (n mod 10);

{
Само число нужно разделить на 10 без остатка, тогда его предпоследняя цифра
станет последней: было 1234, поделили на 10 нацело - стало 123, бывшая
предпоследняя цифра стала последней... Когда поделишь на 10 число, состоящее из одной
цифры, оно станет равным 0, и цикл закончится...
}
n := n div 10;

{
Еще одну цифру обработал, значит, счетчик цифр, которые ЕЩЕ нужно посчитать,
уменьшаешь на 1, Dec(m) аналогично m := m - 1;
}
dec(m); { <--- Обработал еще одну цифру - уменьшаешь счетчик }
end;

{ Ну, и распечатываешь сумму... }
writeln('s = ', s);
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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