当前位置: 首页 > 知识库问答 >
问题:

在java中找出奇数值并满足条件

百里锋
2023-03-14

我想在java中编写一个函数,该函数接收参数并返回1或0,在以下条件下:

>

  • 如果数组的长度是奇数,如果奇数之和大于偶数之和,则返回1,否则返回0。

    如果数组的长度是偶数,请检查小于或等于10的最大数字。如果是奇数,则返回1。如果是偶数,则返回0。

    例如,使用以下数组:

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

    第一个数组返回 1,因为有 13(奇数) 7(奇数) = 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;
        }
    
  • 共有1个答案

    太叔乐家
    2023-03-14

    这里有一个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;
    
        }
    
     类似资料:
    • 问题内容: 使用函数生成汉明距离t内的所有位序列: 我想退出递归函数,并在发生某种情况时返回调用方函数(如果确实如此)。因此,就像我的递归功能正在听到可能告诉她退出的声音一样! 它仅在 打印后发生,这里: 如何做到这一点(停止展开递归并返回到函数调用者)? 尝试: 似乎只是阻止执行,而且永远不会结束! PS-我也有兴趣 旧的方法论。 问题答案: 要以最简单的形式显示,您可以执行以下操作: 然后,您

    • 本文向大家介绍tensorflow实现tensor中满足某一条件的数值取出组成新的tensor,包括了tensorflow实现tensor中满足某一条件的数值取出组成新的tensor的使用技巧和注意事项,需要的朋友参考一下 首先使用tf.where()将满足条件的数值索引取出来,在numpy中,可以直接用矩阵引用索引将满足条件的数值取出来,但是在tensorflow中这样是不行的。所幸,tenso

    • 问题内容: 我的数据结构如下: 我正在尝试进行一个SQL查询,该查询将计算正在运行的SUM,但在小时数为3时将重置。结果应如下所示: 问题答案: 您可以使用条件总和创建子组:

    • 在我的实际数据集中,我有许多列以cent_dept开始,以agg结束,所以选择与组件匹配的用户是非常重要的。 谢谢你的帮助!

    • 问题内容: 我有对象清单。我想在此列表中找到一个属性(或方法结果-任意)等于的(第一个或任何对象)对象。 找到它的最佳方法是什么? 这是测试用例: 我认为使用生成器不会有任何区别,因为它仍然会遍历list。 ps .:方程式只是一个例子。当然我们要获得满足任何条件的元素。 问题答案: 这将从列表中获取与条件匹配的第一项,None如果没有匹配项,则返回。这是我首选的单表达式形式。 然而, 天真的循环

    • 问题内容: 这是我无法弄清楚的非常基本的查询。 假设我有一个两列的表格,如下所示: 我想获取所有具有1、2和3的不同用户ID 。使用上面的示例,我要返回的唯一结果是1。我该怎么做? 问题答案: 任何人阅读本:我的答案是简单明了的,并得到了“接受”的地位,但请不要去阅读答案通过@cletus给出。它具有更好的性能。 只是大声思考一下,@ cletus所描述的编写自联接的另一种方法是: 这对您来说可能