1. Современное решение, когда можно решить "в одну строку"
// PascalABC.NET 3.2, сборка 1439 от 09.05.2017 // Внимание! Если программа не работает, обновите версию!
begin Writeln('S=',ReadSeqInteger(3).Select(n->n.ToString .Where(d->Pos(d,'13579')>0)).SelectMany(c->c) .Select(c->c.ToDigit).Sum) end.
Пример 252 337 105 S=24
2. А примерно вот так учат писать в школе - долго и длинно (да и не особо понятно)
var m,i,j,s,d:integer; begin s:=0; for i:=1 to 3 do begin Read(m); for j:=1 to 3 do begin d:=m mod 10; if d mod 2<>0 then s:=s+d; m:=m div 10 end end; Writeln('S=',s) end.
1. Современное решение, когда можно решить "в одну строку"
// PascalABC.NET 3.2, сборка 1439 от 09.05.2017 // Внимание! Если программа не работает, обновите версию!
begin Writeln('S=',ReadSeqInteger(3).Select(n->n.ToString .Where(d->Pos(d,'13579')>0)).SelectMany(c->c) .Select(c->c.ToDigit).Sum) end.
Пример 252 337 105 S=24
2. А примерно вот так учат писать в школе - долго и длинно (да и не особо понятно)
var m,i,j,s,d:integer; begin s:=0; for i:=1 to 3 do begin Read(m); for j:=1 to 3 do begin d:=m mod 10; if d mod 2<>0 then s:=s+d; m:=m div 10 end end; Writeln('S=',s) end.
// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!
begin
Writeln('S=',ReadSeqInteger(3).Select(n->n.ToString
.Where(d->Pos(d,'13579')>0)).SelectMany(c->c)
.Select(c->c.ToDigit).Sum)
end.
Пример
252 337 105
S=24
2. А примерно вот так учат писать в школе - долго и длинно (да и не особо понятно)
var
m,i,j,s,d:integer;
begin
s:=0;
for i:=1 to 3 do begin
Read(m);
for j:=1 to 3 do begin
d:=m mod 10;
if d mod 2<>0 then s:=s+d;
m:=m div 10
end
end;
Writeln('S=',s)
end.
// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!
begin
Writeln('S=',ReadSeqInteger(3).Select(n->n.ToString
.Where(d->Pos(d,'13579')>0)).SelectMany(c->c)
.Select(c->c.ToDigit).Sum)
end.
Пример
252 337 105
S=24
2. А примерно вот так учат писать в школе - долго и длинно (да и не особо понятно)
var
m,i,j,s,d:integer;
begin
s:=0;
for i:=1 to 3 do begin
Read(m);
for j:=1 to 3 do begin
d:=m mod 10;
if d mod 2<>0 then s:=s+d;
m:=m div 10
end
end;
Writeln('S=',s)
end.