Другие языки программирования и технологии
Кто неплохо понимает в Pascal ПОМОГИТЕ С ЗАДАЧЕЙ!!
НАЙТИ СУММУ ЦИФР 5-ТИ ЗНАЧНОГО ЧИСЛА n ИСПОЛЬЗУЯ ЦИКЛ
Доброго времени суток.
Зачем такие сложности? Предполагается, что число уже введено и находится в N, а переменные объявлены.
S := 0; {накоитель для суммы}
while N > 0 do begin
S := S + (N mod 10); {выделяем последнюю цифру и суммируем}
N := N div 10; {отбрасываем следнюю цифру. }
end;
Вывести результат сами сможете? Кстати, годится для любой разрядности N. Лишь бы влазило в разрядность переменной.
Удачи!
Зачем такие сложности? Предполагается, что число уже введено и находится в N, а переменные объявлены.
S := 0; {накоитель для суммы}
while N > 0 do begin
S := S + (N mod 10); {выделяем последнюю цифру и суммируем}
N := N div 10; {отбрасываем следнюю цифру. }
end;
Вывести результат сами сможете? Кстати, годится для любой разрядности N. Лишь бы влазило в разрядность переменной.
Удачи!
Паскаль не помню, посему пишу алгоритм
1. разделить строковое представление числа на символы, записать в виде массива
2. цикле
2.* прибавить к счетчику элемент массива
В виде перлового кода
my $number = 23456; # Пример - не важно
my $counter;
$counter += $_ foreach (split(//, $number));
1. разделить строковое представление числа на символы, записать в виде массива
2. цикле
2.* прибавить к счетчику элемент массива
В виде перлового кода
my $number = 23456; # Пример - не важно
my $counter;
$counter += $_ foreach (split(//, $number));
Если считывать число строкой, то это самый простой вариант (для любого набора цифр)
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.
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.
К сожелению я давно уже забыл паскаль!!!
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];
{усе ЗЫ данный вариант при считавании с файла}
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];
{усе ЗЫ данный вариант при считавании с файла}
Похожие вопросы
- Помогите с задачей pascal пожалуйста. одна осталась до зачёта!
- Pascal. Помогите пожалуйста решить задачу в паскале !
- Turbo Pascal. Помогите решить 2 задачи! Совершено не понимаю в этом.
- помогите с задачей по Pascal abc!!!
- Пожалуйста помогите решить задачу Pascal
- Люди помогите пожалуйста....Кто понимает TURBO PASCAL
- Помогите написать задачу в Pascal.
- Pascal помогите пожалуйста найти ошибку в задаче.
- Помогите сделать задачу по информатике (Pascal)
- Помогите решить задачи Pascal