Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2008, 11:06   #1
densan
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 19
По умолчанию сложение цифр

По моему простая программа, тока никак не чё то не додумаю. Задача в следующем: необходимо найти сумму цифр целого числа. Заранее спасибо за помош.
densan вне форума Ответить с цитированием
Старый 17.10.2008, 11:55   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну и что же тут сложного?
Как вариант - переводим число в строку, поочередно берем символы, переводим их в цифру и складываем...
mihali4 вне форума Ответить с цитированием
Старый 17.10.2008, 13:06   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Или в цикле wile N>0 do
делим число на 10 и складываем полученные результаты.
puporev вне форума Ответить с цитированием
Старый 17.10.2008, 17:33   #4
densan
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 19
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Ну и что же тут сложного?
Как вариант - переводим число в строку, поочередно берем символы, переводим их в цифру и складываем...
Это понятно, у меня не получается это сделать для любого числа, я могу посчитать сумму например для 3 значного числа, а если ввести 4,5... значное, то как, чтоб прогу не переписывать.
densan вне форума Ответить с цитированием
Старый 17.10.2008, 17:38   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
var N:string;//наше число
     sum,i,t,c:integer;
begin
sum:=0;
for i:=1 to length(N) do
    begin
      val(s[i],t,c);
      sum:=sum+t;
    end;
puporev вне форума Ответить с цитированием
Старый 17.10.2008, 17:45   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Код:
var i, res: integer; s: string;
begin
  res := 0;
  i := 120903405;
  s := IntToStr(i);
  for i := 1 to Length(s) do res:=res+strtoint(s[i]);
  ShowMessage(IntToStr(res));
хе-хе. Уже в третьем посте пишу по сути один и тот же код.
_SERGEYX_ вне форума Ответить с цитированием
Старый 17.10.2008, 17:52   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
i := 120903405;
s := IntToStr(i);
Зачем две строчки, если число сразу можно ввести строкой, причем любой длины.
puporev вне форума Ответить с цитированием
Старый 17.10.2008, 17:56   #8
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Это я чтоб наглядней было
_SERGEYX_ вне форума Ответить с цитированием
Старый 18.10.2008, 12:04   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, чтобы "добить" тему - решение, основанное на [см. пост #3 от puporev] делении числа на 10 и получение остатков (т.е. суммируем по одной цифре):
Код:
var Num : longint; {наше число}
    MySum, OneDigit : integer;
begin
  WriteLn;
  Write('Vvedite chislo: ');
  Readln(Num);
  MySum := 0;
  while Num>0 do begin
      OneDigit := Num mod 10;
      Num := Num div 10;
      MySum := MySum + OneDigit;
  end;
  WriteLn('Summa ravna ',MySum:1);
  Readln
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.10.2008, 12:06   #10
densan
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 19
По умолчанию

ну теперь точно тема закрыта
densan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение Droid Общие вопросы Delphi 14 07.05.2008 13:23
Сложение двух матриц Аркадий Помощь студентам 5 26.04.2008 15:22
Двоичное сложение Юлкунчик Помощь студентам 5 29.02.2008 20:34
Сложение значений Torrenter Компоненты Delphi 2 11.01.2008 19:14
Поразрядное сложение AlexBee Общие вопросы C/C++ 1 26.10.2007 22:45