Задача для курсовой Сумма цифр массива 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