Даны три целых числа.Определите, у которого из них больше сумма цифр. Подсчет суммы цифр организуйте через подпрограмму.
Даны три целых числа.Определите, у которого из них больше сумма цифр. Подсчет суммы цифр организуйте через подпрограмму.
Ответ(ы) на вопрос:
Гость
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
Гость
// 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
Суммы цифр у всех трех чисел равны
Не нашли ответ?
Похожие вопросы