Вчисловую переменную последовательно вводятся целые числа, не равные нулю. кол-во вводимых чисел 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.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку