Задача для курсовой Сумма цифр массива Java

Ребята, помогите решить задачу.

Условие задачи: Найти сумму всех цифр целочисленного массива (числа только положительные). Например, если дан массив [12, 104, 81], то сумма всех его цифр будет равна 1 + 2 + 1 + 0 + 4 + 8 + 1 = 17.

я начала так:

import java.util.Random;
import java.util.Scanner;
public class Main {
    private static Object length;
    
    
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
    
        int positives = 0;
        int[ ] array = {12,104,81}
      
        int sum = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] > 0) {
                sum += array[i];
                array [i] / =10;
                positives++;
            }
        }
        System.out.println(sum);
        System.out.printf(" Кол-во положительных чисел: " + positives);
    
    }
}

Но мой вариант суммирует 12+104+81 , а мне необходимо узнать сумму 1+2+1+0+4+8+1.


Ответы (1 шт):

Автор решения: Alex Rudenko

Следует написать функцию, которая определяет сумму цифр в числе (самый простой способ с использованием остатка от деления на 10 для определения каждой цифры), и вызвать её в цикле для положительных элементов массива:

static int digitSum(int n) {
    int sum = 0;
    while (n > 0) {
        sum += n % 10;
        n /= 10;
    }
    return sum;
}

Вызов в методе main:

public static void main(String[] args) {
    //Scanner input = new Scanner(System.in);

    int positives = 0;
    int[ ] array = {12,104,81};
  
    int sum = 0;
    for (int i = 0; i < array.length; i++) {
        if (array[i] > 0) {
            sum += digitSum(array[i]);
            positives++;
        }
    }        
    System.out.println(sum);
    System.out.printf(" Кол-во положительных чисел: " + positives);    
}

Результат:

17
 Кол-во положительных чисел: 3
→ Ссылка