Предмет: Информатика,
автор: nightmare666666
Помогите,пожалуйста)
Даны три четырехзначных,целых числа.Нужно вывести число с наименьшей суммой цифр.
Скиньте решение в паскале)
Заранее спасибо)
Ответы
Автор ответа:
0
program z;
var x:array[1..3] of integer;
s,min,i_min,i:integer;
begin
min:=37; {начальное значение минимальной суммы выбрать больше самого большого из 4х-значных чисел 9999, т.е. 9+9+9+9=36}
for i:=1 to 3 do
begin
readln(x[i]); {ввести очередное число}
s:=x[1] mod 10 + x[i] div 10 mod 10 + x[i] div 100 mod 10 + x[i] div 1000;
{считаем сумму цифр}
if s<min then begin i_min:=i; min:=s; end; {если сумма меньше текущего значения минимума, то считать эту сумму минимальной и запомнить в i_min номер текущего числа}
end;
writeln(x[i_min]); {вывести число с номером i_min как число с минимальной суммой его цифр}
end.
var x:array[1..3] of integer;
s,min,i_min,i:integer;
begin
min:=37; {начальное значение минимальной суммы выбрать больше самого большого из 4х-значных чисел 9999, т.е. 9+9+9+9=36}
for i:=1 to 3 do
begin
readln(x[i]); {ввести очередное число}
s:=x[1] mod 10 + x[i] div 10 mod 10 + x[i] div 100 mod 10 + x[i] div 1000;
{считаем сумму цифр}
if s<min then begin i_min:=i; min:=s; end; {если сумма меньше текущего значения минимума, то считать эту сумму минимальной и запомнить в i_min номер текущего числа}
end;
writeln(x[i_min]); {вывести число с номером i_min как число с минимальной суммой его цифр}
end.
Автор ответа:
0
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!
function SumDigs(n:integer):integer;
begin
n:=Abs(n); // от отрицательных чисел
Result:=n mod 10;
while n>0 do begin
n:=n div 10;
Result+=n mod 10
end
end;
begin
var a:=ReadArrInteger(3);
Writeln(a[a.Select(t->SumDigs(t)).ToArray.IndexMin])
end.
Пример
1843 9012 8562
9012
Замечание: число цифр в числе может быть от 1 до 9. Отрицательные числа тоже допустимы.
Внимание! Если программа не работает, обновите версию!
function SumDigs(n:integer):integer;
begin
n:=Abs(n); // от отрицательных чисел
Result:=n mod 10;
while n>0 do begin
n:=n div 10;
Result+=n mod 10
end
end;
begin
var a:=ReadArrInteger(3);
Writeln(a[a.Select(t->SumDigs(t)).ToArray.IndexMin])
end.
Пример
1843 9012 8562
9012
Замечание: число цифр в числе может быть от 1 до 9. Отрицательные числа тоже допустимы.
Похожие вопросы
Предмет: Геометрия,
автор: pomohalka
Предмет: Информатика,
автор: Наглый2
Предмет: История,
автор: unesakuhalskaa
Предмет: Математика,
автор: жасканат1
Предмет: История,
автор: gihftu