• ,

Кухня(); Задание N1.


Правила
[Одномерные массивы]
1. Дан массив натуральных чисел. Найти сумму элементов, кратных данному K.

P.S: Кто первый решит, тому лайк в карму! ;)

9 комментариев

Voleczka
  • Voleczka
  • 0
  • Комментарий отредактирован 2014-08-16 16:59:47 пользователем Voleczka
public static int calculate(int[] list, int k)
{
int x = 0;
for (int i = 0; i < list.length; i++)
{
if (list[i] % k == 0)
x = x + list[i];
}
return x;
}
terranum
public static int calculate(int[] list, int k)
    {
        int x = 0;
        for (int i = 0; i < list.length; i++)
        {
            if (list[i] % k == 0)
                x = x + list[i];
        }
        return x;
    }

Смотри, если вставляешь между тегами code предварительно отформатированный код, читабельность повышается в разы. В Intellij IDEA я пользуюсь, Ctrl + A, Ctrl + Alt + L, Selected text and run. Как мне показалось сначала ты решил через ArrayList, думаю стоит переименовать list на arr, и x на что то типа sum, придав немного логики тоже читать легче. Как говориться если вам кажется что ваш код идеален, представьте что он чужой. :)
Как считаешь k стоит проверять на ноль, если да то что и как делать?
Voronblack
  • Voronblack
  • 0
  • Комментарий отредактирован 2014-08-16 18:40:13 пользователем Voronblack
k конечно стоит проверить, перед циклом.
Voleczka

исправила:
public static int calculate(int[] arr, int k) {
        int sum = 0;
        if (k != 0) {
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] % k == 0)
                    sum = sum + arr[i];
            }
        }
        return sum;
    }
terranum
Тогда и я исправлюсь.
Как мне показалось сначала ты решила через ArrayList...
terranum
Так на много лучше!
ragesteel

    // Простая и наивная реализация
    public static int getSumOfMultiple(int[] arr, int k) {
        int result = 0;
        for (int i : arr) {
            if (0 != i % k) {
                continue;
            }
            result += i;
        }
        return result;
    }

    // Можно пожертвовать читаемостью и немного сократить количество строк
    public static int getSumOfMultiple2(int[] arr, int k) {
        int result = 0;
        for (int i : arr) {
            result += (0 == i % k) ? i : 0;
        }
        return result;
    }

    // Но это не так интересно, как попробовать все эти новые фишки java 8
    public static int getSumOfMultiple3(int[] arr, int k) {
        return Arrays.stream(arr).filter(value -> 0 == value % k).sum();
    }
RabenokDmitry
Включаюсь в это занимательное занятие с самого начала!:) Будет тяжело, но я вас догоню:)

public static int SumOfArrayElements(int[] array, int k) {
        int result = 0;
        if (k != 0) {
            for (int element : array) {
                if (element % k == 0)
                    result = result + element;
            }

            return result;
        } else {
            System.out.println("K не может быть равно 0");
            return 0;
        }

    }
terranum
Красава! Давай ждем!!!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.