簡體   English   中英

找出奇數並滿足Java中的條件

[英]Find out the odd value and meet criteria in java

我想在以下情況下用Java編寫一個函數,該函數接收參數並返回1或0:

  1. 如果數組的長度為奇數,則如果奇數之和大於偶數之和,則返回1,否則返回0。

  2. 如果數組的長度是偶數,請檢查小於或等於10的最大數字。如果是奇數,則返回1。如果是偶數,則返回0。

例如,使用以下數組:

array1 = {13, 4, 7, 2, 8}
array2 = {11, 7, 4, 2, 3, 10}

第一個數組返回1,因為那里的13(odd) + 7(odd) = 20大於4 + 2 + 8 =14。第二個數組返回0,因為那里的11, 7是奇數,但是10大於7。 。

我已經嘗試過的方法,請檢查以下內容:

   public static int isOddHeavy(int[] arr) {
        int summationOd = 0;
        int summationEv = 0;

        for (int i = 0; i < arr.length; i++) {
            if (i % 2 != 0) {
                summationOd = sumOddEven(arr);
            } else {
                summationEv = sumOddEven(arr);
            }
        }

        if(summationOd > summationEv) {
            return 1;
        } else {
            return 0;
        }

    }

    public static int sumOddEven(int[] arr) {
        int total = 0;
        for (int i = 1; i < arr.length; i++) {
            total += arr[i];
        }
        return total;
    }

這是一個Java函數,可以滿足您的需求。 只需遍歷數組,更新變量並最后檢查條件即可。

    public static int yourFunction(int[] arr) {
        int sumOdd = 0;
        int sumEven = 0;
        int maxOdd = 0;
        int maxEven = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 == 0) {
                sumEven += arr[i];
                if (maxEven < arr[i] && arr[i] <= 10)
                    maxEven = arr[i];
            }
            else {
                sumOdd += arr[i];
                if (maxOdd < arr[i] && arr[i] <= 10)
                    maxOdd = arr[i];
            }
        }
        if (arr.length%2 != 0)
            return (sumOdd > sumEven) ? 1 : 0;
        return (maxOdd > maxEven) ? 1 : 0;

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM