Вопрос задан 26.02.2019 в 07:53. Предмет Информатика. Спрашивает Шпилевский Леонид.

Написать функцию суммы цифр любого целого числа и найти число с наибольшей суммой цифр из N

введенных. Паскаль АВС через подпрограммы
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Артюшенко Аленка.
// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
function Sod(n:integer):integer:=
  n.ToString.Select(c->StrToInt(c)).Sum;

begin
  var n:=ReadInteger('n=');
  var max:=0;
  var m,mmax:integer;
  for var i:=1 to n do begin
    m:=ReadInteger('Число '+IntToStr(i)+': ');
    var s:=Sod(m);
    if s>max then begin max:=s; mmax:=m end
    end;
  Writeln('Максимальная сумма ',max,' в числе ',mmax)
end.

Тестовое решение:
n= 5
Число 1:  3243
Число 2:  10000004
Число 3:  23536
Число 4:  9942
Число 5:  43354
Максимальная сумма 24 в числе 9942
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Функция суммы цифр любого целого числа

Для решения данной задачи в Паскале можно написать функцию, которая будет вычислять сумму цифр любого целого числа. Вот пример такой функции:

```pascal function SumOfDigits(n: Integer): Integer; var sum: Integer; digit: Integer; begin sum := 0; n := Abs(n); // берем модуль числа, чтобы работать только с положительными цифрами while n > 0 do begin digit := n mod 10; // получаем последнюю цифру числа sum := sum + digit; // добавляем цифру к сумме n := n div 10; // удаляем последнюю цифру числа end; Result := sum; end; ```

Эта функция принимает целое число `n` и возвращает сумму его цифр. Она использует цикл `while`, чтобы последовательно получать каждую цифру числа, добавлять ее к сумме и удалять из числа. Функция также берет модуль числа, чтобы работать только с положительными цифрами.

Нахождение числа с наибольшей суммой цифр из N введенных чисел

Чтобы найти число с наибольшей суммой цифр из N введенных чисел, можно использовать функцию `SumOfDigits`, описанную выше. Вот пример кода, который решает эту задачу:

```pascal program MaxSumOfDigits;

function SumOfDigits(n: Integer): Integer; var sum: Integer; digit: Integer; begin sum := 0; n := Abs(n); while n > 0 do begin digit := n mod 10; sum := sum + digit; n := n div 10; end; Result := sum; end;

var i, N, number, maxSum, maxNumber: Integer; begin Write('Введите количество чисел N: '); Readln(N); maxSum := 0; maxNumber := 0; for i := 1 to N do begin Write('Введите число ', i, ': '); Readln(number); if SumOfDigits(number) > maxSum then begin maxSum := SumOfDigits(number); maxNumber := number; end; end; Writeln('Число с наибольшей суммой цифр: ', maxNumber); Writeln('Сумма его цифр: ', maxSum); end. ```

В этом примере программа сначала запрашивает количество чисел `N`, которые нужно ввести. Затем она в цикле запрашивает каждое число и сравнивает его сумму цифр с максимальной суммой, сохраняя число с наибольшей суммой и саму сумму. По завершении цикла программа выводит число с наибольшей суммой цифр и саму сумму.

Примечание: В приведенном коде предполагается, что пользователь будет вводить только целые числа. Если нужно обрабатывать ввод с плавающей запятой или другие типы данных, код нужно будет соответствующим образом изменить.

Надеюсь, это поможет вам решить задачу! Если у вас возникнут еще вопросы, не стесняйтесь задавать.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос