Даны три целых числа.Определите, у которого из них больше сумма цифр. Подсчет суммы цифр...

0 голосов
187 просмотров

Даны три целых числа.Определите, у которого из них больше сумма цифр. Подсчет суммы цифр организуйте через подпрограмму.


Информатика (15 баллов) | 187 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// 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
Суммы цифр у всех трех чисел равны




(150k баллов)
0 голосов

Var a,b,c,m1,m2,m3,max:integer;
function sum(n:integer):integer;
var s:integer;
begin
s:=0;
n:=abs(n);
while n>0 do
 begin
 s:=s+n mod 10;
 n:=n div 10;
 end;
sum:=s;
end;
begin
write('a, b, c: ');
readln(a,b,c);
m1:=sum(a); m2:=sum(b); m3:=sum(c);
writeln('m1 = ',m1,' m2 = ',m2,' m3 = ',m3);
if m1>m2 then max:=m1 else max:=m2;
if m3>max then max:=m3;
writeln('max = ',max);
end.

Пример:
a, b, c: 45 -3549 138
m1 = 9 m2 = 21 m3 = 12
max = 21

(194k баллов)
0

Да, Вы правы. Прямого ответа нет, только косвенный получился (

0

Писанины, конечно, много для такой простой задачи. Но всё равно надо было мне повнимательнее условие читать.