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

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

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

> Разложение числа на цифры, ПЛЗ посмотрите сначала прежде чем в фак посылать
kr3v3tkus
сообщение 17.12.2005 22:27
Сообщение #1


Пионер
**

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

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


Посмотрите пожалста задачу, я уже в поиске искал. но там выдаёт такое разбивание числа типа 6=5+1 или сумма чисел в массиве, а мне надо типа 605=6+0+5. Вся трудность в том, что я не знаю как применить свойство мода и дива для множества чисел sad.gif я знаю, что чтобы получить например 2 из 123
нужно сделать (123 div 10) mod 10, но если у нас есть такое число - 1234, то ведь надо например для 1 делать просто div 1000, для 2 и див и мод ну и т.д.
Помогите или пошлите в пример плз unsure.gif

Составить программу нахождения среднего арифметического значения цифр заданного натурального числа N (1<N<1000000000).

Код
program lol;
var n:longint;
      k,s:integer;
begin
k:=1;
s:=0;
z:=n;
writeln('vvesti 4islo');
readln(n);
writeln;
if (n>1)and(n<1000000000) then  {'условие для n'}
  begin

    while z>=10 do  {'здесь идёт вычисление из скольки цифр состоит число'}
      begin
        z:=z div 10;
        k:=k+1;
      end;

  begin  {' !!! а здесь надо найти сумму состовляющих число цифр'}
    while i<=k do

  end;

  end;
else writeln('neprav1ln1y argyment');
readln;
end.


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Alex7
сообщение 18.12.2005 10:14
Сообщение #2


Пионер
**

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

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


Цитата
1 s:=s+(n mod 10) {s=0+1234567 mod 10 => s=0+234567}

Не так.
Вот так:
1 s:=s+(n mod 10) {s=0+1234567 mod 10 => s=0+7} 

Т.Е. mod тебе выдает в результате ту цифру, которая не поделилась нацело на 10(на 10 могут нацело делится числя больше 10, а так, как у нас большое число, то его младшая цифра- единичная не делится, вот ее и получаем).
Выполняя циклично этоту операцию ты получишь сумму цифр твоего числа, только тебе нужео запоминать значение n, чтобы в следушем цикле уже модить меньшее число(уже без последней цифры) и т.д.
Короче
Код
while n <> 0 do begin
s := s + (n mod 10);
n := n div 10;
end;

Очень правильное и оптимаьное решение.

Думаю как находить среднее значение тебе не нужно писать, сам не балбесс lol.gif , тем более уже утро... good.gif

Сообщение отредактировано: volvo - 3.11.2006 22:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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