Вчисловую переменную последовательно вводятся целые числа, не равные нулю. кол-во вводимых чисел n неизвестно. найти сумму тех чисел, в которых встречаются ровно две цифры 5.(в паскале написать программу)
var n,a,k,sum,i,j: integer; s: string; begin sum:=0; write ('Введите количество чисел: '); readln (n); for i:=1 to n do begin write ('Введите число: '); readln (a); Str(a,s); k:=0; for j:=1 to length(s) do if s[j]='5' then k:=k+1; if k=2 then sum:=sum+a; end; writeln ('Sum = ',sum); end.
2 вариант через div и mod
var n,a,x,k,sum,i: integer; begin sum:=0; write ('Введите количество чисел: '); readln (n); for i:=1 to n do begin write ('Введите число: '); readln (a); x:=abs(a); k:=0; while x>0 do begin if x mod 10 =5 then k:=k+1; x:=x div 10; end; if k=2 then sum:=sum+a; end; writeln ('Sum = ',sum); end.
пример результата:
Введите количество чисел: 3 Введите число: 550001 Введите число: -550000 Введите число: 123456 Sum = 1
//PascalABC.NET версия 3.2, сборка 1367 begin var sum := 0; for var i := 1 to ReadInteger('n=') do begin var num := ReadInteger('Введите число ='); if num.ToString().ToCharArray.Count(c -> c = '5') = 2 then sum += num; end; Writeln(sum); end.
var
n,a,k,sum,i,j: integer;
s: string;
begin
sum:=0;
write ('Введите количество чисел: ');
readln (n);
for i:=1 to n do begin
write ('Введите число: ');
readln (a);
Str(a,s);
k:=0;
for j:=1 to length(s) do
if s[j]='5' then k:=k+1;
if k=2 then sum:=sum+a;
end;
writeln ('Sum = ',sum);
end.
2 вариант через div и mod
var
n,a,x,k,sum,i: integer;
begin
sum:=0;
write ('Введите количество чисел: ');
readln (n);
for i:=1 to n do begin
write ('Введите число: ');
readln (a);
x:=abs(a);
k:=0;
while x>0 do begin
if x mod 10 =5 then k:=k+1;
x:=x div 10;
end;
if k=2 then sum:=sum+a;
end;
writeln ('Sum = ',sum);
end.
пример результата:
Введите количество чисел: 3
Введите число: 550001
Введите число: -550000
Введите число: 123456
Sum = 1
begin
var sum := 0;
for var i := 1 to ReadInteger('n=') do
begin
var num := ReadInteger('Введите число =');
if num.ToString().ToCharArray.Count(c -> c = '5') = 2 then
sum += num;
end;
Writeln(sum);
end.