В числовую переменную последовательно вводятся целые числа, не равные нулю. кол-во вводимых чисел n неизвестно. Найти сумму тех чисел, в которых встречаются ровно две цифры 5.(в паскале написать программу)

Ответы

Ответ дал: Эклео
0
========== 1 вариант через строку ==========

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

Ответ дал: Aillianna
0
//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.
Вас заинтересует