// PascalABC.NET 3.2, сборка 1403 от 16.03.2017 // Внимание! Если программа не работает, обновите версию!
function SumDigits(n:integer):integer; begin Result:=0; while n>0 do begin Result+=n mod 10; n:=n div 10 end end;
begin var s:=ReadArrInteger('Вводите:',3).Select(x->SumDigits(x)).ToArray; var i:=s.IndexMax; var k:=s.Where(x->x=s[i]).Count; case k of 1:begin Write('Сумма цифр наибольшая у '); case i of 0:Write('первого'); 1:Write('второго'); 2:Write('третьего'); end; Writeln(' числа') end; 2:begin Write('Сумма цифр наибольшая у '); if s[0]=s[1] then Writeln('первого и второго чисел') else if s[0]=s[2] then Writeln('первого и третьего чисел') else Writeln('второго и третьего чисел') end; 3:Writeln('Суммы цифр у всех трех чисел равны') end end.
Примеры Вводите: 102030 324 19 Сумма цифр наибольшая у третьего числа
Вводите: 16453 4320 56341 Сумма цифр наибольшая у первого и третьего чисел
Вводите: 12345 12354 54321 Суммы цифр у всех трех чисел равны
>>Целые числа на отрезке от 2 до 18 делятся без остатка только на 1. >>При этом сумма чисел только на одном этом отрезке будет равна 170. >>А на втором отрезке от 4 до 20, сумма чисел кратных 4 равно 60. >>Откуда взялось 87 - непонятно.
Да все ок, только небольшая ошибка в логике. Суммарно, оба множества составляют 87. При этом, как правильно указано в первом ответе, сумма чисел множества правой половины составляет 60. Соответственно, сумма чисел множества левого выражения составляет 87-60=27.
Отсюда, сумма чисел (НЕ (A<2 ИЛИ A>18 ИЛИ A%X<>0)) = 27.
Немного преобразуем формулу множества:
А>=2 И А<=20 И A%Х=0, то есть, это числа от 2 до 20 включительно, которые без остатка делятся на Х. И при этом их сумма равна 27.
Очевидно, что это числа 9 и 18. Сумма которых равна 27.
// Внимание! Если программа не работает, обновите версию!
function SumDigits(n:integer):integer;
begin
Result:=0;
while n>0 do begin
Result+=n mod 10;
n:=n div 10
end
end;
begin
var s:=ReadArrInteger('Вводите:',3).Select(x->SumDigits(x)).ToArray;
var i:=s.IndexMax;
var k:=s.Where(x->x=s[i]).Count;
case k of
1:begin
Write('Сумма цифр наибольшая у ');
case i of
0:Write('первого');
1:Write('второго');
2:Write('третьего');
end;
Writeln(' числа')
end;
2:begin
Write('Сумма цифр наибольшая у ');
if s[0]=s[1] then Writeln('первого и второго чисел')
else
if s[0]=s[2] then Writeln('первого и третьего чисел')
else Writeln('второго и третьего чисел')
end;
3:Writeln('Суммы цифр у всех трех чисел равны')
end
end.
Примеры
Вводите: 102030 324 19
Сумма цифр наибольшая у третьего числа
Вводите: 16453 4320 56341
Сумма цифр наибольшая у первого и третьего чисел
Вводите: 12345 12354 54321
Суммы цифр у всех трех чисел равны
X равен 9.
Объяснение:
>>Целые числа на отрезке от 2 до 18 делятся без остатка только на 1. >>При этом сумма чисел только на одном этом отрезке будет равна 170. >>А на втором отрезке от 4 до 20, сумма чисел кратных 4 равно 60. >>Откуда взялось 87 - непонятно.
Да все ок, только небольшая ошибка в логике. Суммарно, оба множества составляют 87. При этом, как правильно указано в первом ответе, сумма чисел множества правой половины составляет 60. Соответственно, сумма чисел множества левого выражения составляет 87-60=27.
Отсюда, сумма чисел (НЕ (A<2 ИЛИ A>18 ИЛИ A%X<>0)) = 27.
Немного преобразуем формулу множества:
А>=2 И А<=20 И A%Х=0, то есть, это числа от 2 до 20 включительно, которые без остатка делятся на Х. И при этом их сумма равна 27.
Очевидно, что это числа 9 и 18. Сумма которых равна 27.