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

Как в Pascal найти суму числел числа!?

Есть число 123 как сделать алгоритм при котором все числа будут сумироватся?
Например: 1+2+3=6
Помогите! Нужно решить с помошью цыкла!
решение на Turbo Pacsal 7.0. число берется наугад. (но только трехзначные)

uses crt;
var chislo: integer;
begin
clrscr;
randomize;
chislo:=100+ random (900);
writeln (' число = ', chislo);
writeln (' сумма = ', (chislo div 100) + ((chislo mod 100) div 10) + (chislo mod 10));
readln;
end.

Сейчас и с циклом придумаем... Число может быть любым? пятизначным?
вот решение на число длиной до 10 знаков

uses crt;
var chislo, i, ost: LongInt;
begin
clrscr;
randomize;
write ('Input Number = ');
readln (chislo);
i:=0;
while chislo<>0 do
begin
ost:=chislo mod 10;
i:=i+ost;
chislo:= chislo div 10;
end;
write (' сумма чисел = ', i);
readln;
end.
Денис Дорогань
Денис Дорогань
24 309
Лучший ответ
Ты можешь откусить от числа последнюю цифру, если поделишь число на 10 с остатком.

Пусть N = 123.
Тогда N mod 10 = остаток, последняя цифра числа (3).
N div 10 = частное, все цифры числа, кроме последней (12).

Будет у тебя число N = 31415.
sum := 0;

cifra := N mod 10; {cifra = 5}
sum := sum + cifra; {sum = 5}
N := N div 10; {N = 3141}

cifra := N mod 10; {cifra = 1}
sum := sum + cifra; {sum = 6}
N := N div 10; {N = 314}

cifra := N mod 10; {cifra = 4}
sum := sum + cifra; {sum = 10}
N := N div 10; {N = 31}

cifra := N mod 10; {cifra = 1}
sum := sum + cifra; {sum = 11}
N := N div 10; {N = 3}

cifra := N mod 10; {cifra = 3}
sum := sum + cifra; {sum = 14}
N := N div 10; {N = 0}

N = 0, больше цифр нет.
sum = 14. Готово!

А как это сделать циклом — попробуй догадаться без меня.
Владимир Кронов Спасибо! Очень помог!
Можно очень просто, переведя число в строку
var a, sum, i: integer;
begin
Readln(a);
for i:=1 to length(inttostr(a)) do //цикл перебирает цифры числа от первой до последней (длина числа)
sum:= sum + strtoint(a)[i]; // Прибавляем к sum текущую цифру числа
writeln(sum);
end.
program _____;
uses crt;
var a,b:integer;
begin

writeln('Введите два числа: ');
readln(a,b);
writeln('Сумма: ', a+b+с,);

readln;
end. Проверь, вроде так я давно писал уже не помню
Руслан Тантенов не var a,b:integer; а var a,b,c:integer;

Похожие вопросы