Другие языки программирования и технологии

Кто неплохо понимает в Pascal ПОМОГИТЕ С ЗАДАЧЕЙ!!

НАЙТИ СУММУ ЦИФР 5-ТИ ЗНАЧНОГО ЧИСЛА n ИСПОЛЬЗУЯ ЦИКЛ
СC
Сергей Ceg
1 659
Доброго времени суток.

Зачем такие сложности? Предполагается, что число уже введено и находится в N, а переменные объявлены.

S := 0; {накоитель для суммы}
while N > 0 do begin
S := S + (N mod 10); {выделяем последнюю цифру и суммируем}
N := N div 10; {отбрасываем следнюю цифру. }
end;

Вывести результат сами сможете? Кстати, годится для любой разрядности N. Лишь бы влазило в разрядность переменной.

Удачи!
Мазуренко Андрей
Мазуренко Андрей
59 612
Лучший ответ
Паскаль не помню, посему пишу алгоритм
1. разделить строковое представление числа на символы, записать в виде массива
2. цикле
2.* прибавить к счетчику элемент массива

В виде перлового кода
my $number = 23456; # Пример - не важно
my $counter;
$counter += $_ foreach (split(//, $number));
Виталий
Виталий
7 476
Если считывать число строкой, то это самый простой вариант (для любого набора цифр)

var digit:string;
i,sum:integer;
begin
sum:=0;
writeln('Enter a digit:');
readln(digit);
For i:=1 to Length(digit) do sum:=sum+(ord(digit)-48);
writeln(sum);
readln;
end.
К сожелению я давно уже забыл паскаль!!!
Eugen Thierbach
Eugen Thierbach
1 135
l:=1;
For i:=1 to 5 do
begin
l:=l*10;
inc(s,n mod l);
n:=n div l;
end;
\\Если цикл for;
l:=1;
repeat
begin
l:=l*10;
inc(s,n mod l);
n:=n div l;
until n=0;
\\цикл repeat;
l:=1;
while n>0 do
begin
l:=l*10;
inc(s,n mod l);
n:=n div l;
end;
\\цикл while;
если есть ошибки поправляйте... .
Учи язык.. .

еще вариант.. .
Считываешь число в массив циклом.. .
while not(eoln) do
begin
inc(i);
read(now); {где now : char}
a [ i ] :=ord('now')-ord('0'); {где ord(now) получение кода символа}
end;
for J:=1 to i do s:=s+a[j];
{усе ЗЫ данный вариант при считавании с файла}
Viktor Mihhailov
Viktor Mihhailov
943