Цитата:
Сообщение от Lera_94
1.В первую ячейку массива поместить число 13. В остальные ячейки поместить числа, равные сумме числа из предыдущей ячейки и его цифр (т.е. во второй ячейке будет число 13+1+3=17). Найти сумму элементов, кратных заданному числу
|
Пожалуйста:
Код:
Var
A:Array[1..255] of Word;
i,N,k:Byte;
Sum_of_Elements:Word;
Function Sum_of_Digits(Q:Word):Byte;
var
QS:Word;
Number_of_Digits,Sum,p:Byte;
begin
QS:=Q;
Number_of_Digits:=Trunc(Ln(Q)/Ln(10))+1;
Sum:=0;
for p:=1 to Number_of_Digits do
begin
Sum:=Sum+(QS mod 10);
QS:=QS div 10;
end;
Sum_of_Digits:=Sum;
end;
Begin
A[1]:=13;
Write('N (1<N<256) = ');
Readln(N);
Write(A[1]:8);
For i:=2 to N do
begin
A[i]:=A[i-1]+Sum_of_Digits(A[i-1]);
Write(A[i]:8);
end;
Writeln;
Writeln;
Sum_of_Elements:=0;
Write('k = ');
Readln(k);
For i:=1 to N do
if (A[i] mod k)=0 then
begin
write(A[i]:8);
Inc(Sum_of_Elements,A[i]);
end;
Writeln;
If Sum_of_Elements=0 then
Writeln('No such elements!')
else
Writeln('Sum_of_elements = ',Sum_of_elements);
Readln;
End.
Функция считает сумму цифр числа. Предварительно там (через логарифмы) определяется количество цифр. Остальное, думаю, понятно.