5083. Сумма цифр

 

Даны n чисел. Найдите среди них число с минимальной суммой цифр (а из чисел с одинаковой суммой – последнее).

 

Вход. В первой строке находится число n (1 ≤ n ≤ 105). В следующей строке через пробел перечислены все числа. Все числа натуральные, не превышающие 109.

 

Выход. Выведите одно число – искомый минимум.

 

Пример входа 1

Пример выхода 1

4

7 8 9 10

10

 

 

Пример входа 2

Пример выхода 2

4

41 32 23 14

14

 

 

РЕШЕНИЕ

циклы

 

Анализ алгоритма

Реализуем функцию, вычисляющую сумму цифр числа. Ищем число с наименьшей суммой цифр. Среди чисел с одинаковой наименьшей суммой цифр ищем наименьшее.

 

Реализация алгоритма

Функция sum находит сумму цифр числа.

 

int sum(int n)

{

  int s = 0;

  while(n > 0)

  {

    s += n % 10;

    n /= 10;

  }

  return s;

}

 

Основная часть программы. Читаем входные данные. В переменной minSum подсчитываем минимальную сумму цифр. Среди всех чисел с наименьшей суммой цифр минимальное сохраняем в переменной minVal.

 

scanf("%d",&n);

minSum = 2100000000;

for(i = 0; i < n; i++)

{

  scanf("%d",&val);

 

Для каждого числа val вычисляем сумму его цифр s.

 

  s = sum(val);

  if (s <= minSum)

  {

    minSum = s;

    minVal = val;

  }

}

 

Выводим искомое число.

 

printf("%d\n",minVal);