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

BAMBELBI013 BAMBELBI013    2   17.08.2019 11:00    1

Ответы
salimova77 salimova77  05.10.2020 00:43
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
ПОКАЗАТЬ ОТВЕТЫ
Muna222 Muna222  05.10.2020 00:43
//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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика