Регистрация
Войти
Стать экспертом Правила
Информатика

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

ОТВЕТЫ
========== 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 xgt;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 -gt; c = 5) = 2 then
            sum += num;
    end;
    Writeln(sum);
end.
8
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам