Skapisheva15151515
30.06.2020 10:44

Информатика

й123456789012345678901234567890

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Лерок228
16.07.2021 05:39
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.
0,0(0 оценок)
Ответ:
SmartJager
16.07.2021 05:39
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.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота