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

编写一个程序,搜索数组以找到第一个奇数

长孙智刚
2023-03-14

我无法完成这个问题。编写一个程序,搜索数组以找到第一个奇数。如果找到奇数,则找到奇数后的第一个偶数。返回第一个奇数和第一个偶数之间的距离。如果未找到奇数或奇数后没有偶数,则返回-1。我试过这个问题,但无法解决这是我的代码:

public class RayOddtoEven
{
  public static int go(int[] ray)
  {
    int result = 0;
    boolean oddExists = false;
    int oddIndex = 0;
    for (int i = 0; i < array.length; i++)
    {
      if (array[i] % 2 != 0)
      {
        oddExists = true;
        oddIndex = array[i];
        break;
      } 
    }
  }
}

此代码的运行程序

class Main 
{
  public static void main(String[] args) 
  {
    RayOddtoEven rt = new RayOddtoEven();

    System.out.println( rt.go( new int[]{7,1,5,3,11,5,6,7,8,9,10,12345,11} ) );
    System.out.println( rt.go( new int[]{11,9,8,7,6,5,4,3,2,1,-99,7} ) );
    System.out.println( rt.go( new int[]{10,20,30,40,5,41,31,20,11,7} ) );
    System.out.println( rt.go( new int[]{32767,70,4,5,6,7} ) );
    System.out.println( rt.go( new int[]{2,7,11,21,5,7} ) );
    System.out.println( rt.go( new int[]{7,255,11,255,100,3,2} ) );
    System.out.println( rt.go( new int[]{9,11,11,11,7,1000,3} ) );
    System.out.println( rt.go( new int[]{7,7,7,11,2,7,7,11,11,2} ) );
    System.out.println( rt.go( new int[]{2,4,6,8,8} ) );

  }
}

请帮我完成这个代码,我给输出,这个代码给这个运行。我需要这个答案。我需要的正确输出。

6
2
3
1
-1
4
5
4
-1

共有1个答案

闻人鸿飞
2023-03-14

我将嵌套一个循环,首先迭代以找到第一个奇数;然后从那里向前迭代,得到一个偶数值。一旦从第一个奇数开始迭代,就可以终止外部循环。差不多

public static int go(int[] ray) {
    for (int i = 0; i < ray.length; i++) {
        if (ray[i] % 2 != 0) {
            for (int j = i + 1; j < ray.length; j++) {
                if (ray[j] % 2 == 0) {
                    return j - i;
                }
            }
            break;
        }
    }
    return -1;
}

产出(按要求)

6
2
3
1
-1
4
5
4
-1
 类似资料:
  • 问题内容: 我无法完成这个问题。编写一个程序,该程序将搜索数组以查找第一个奇数。如果找到了奇数,则找到奇数之后的第一个偶数。返回第一个奇数和第一个偶数之间的距离。如果找不到奇数或奇数之后没有偶数,则返回-1。我试过这个问题,但我无法解决这是我的代码: 该代码的亚军 请帮助我完成此代码,并提供此代码给该运行程序提供的输出。我需要这个答案。我需要的正确输出。 问题答案: 我将嵌套一个循环,首先进行迭代

  • 请为我们第一个程序 理所当然的 Hello, World! 做好准备。 1: %include 'system.inc' 2: 3: section .data 4: hello db 'Hello, World!', 0Ah 5: hbytes equ $-hello 6: 7: section .text 8: global _start 9: _st

  • 本文向大家介绍编写Golang程序以搜索数组中的元素,包括了编写Golang程序以搜索数组中的元素的使用技巧和注意事项,需要的朋友参考一下 定义: 一个数字是大于2且只能被其自身和1整除。 示例:素 数是2、3、5、7、11、13、113、119等。 解决这个问题的方法 步骤1:找到给定数字的平方根sq_root =√num 步骤2:如果给定数字可被[2,sq_root]所属的数字整除,则打印“非

  • 现在我们开始编写全书的第一个程序。跟我们以前学习程序设计的方法不同(以前我们是输入完整程序,然后运行),我们首先利用Visual Studio的可视化编程工具AppWizard生成框架程序,再往里边填写代码。这是一种“填空式”的编程方法:首先生成框架,然后根据目标程序的要求,看哪些地方需要修改,再往里填写代码。类似其他语言,我们把第一个程序命名为Hello。 首先启动AppWizard:在File

  • 本文向大家介绍编写Golang程序以搜索排序数组中的元素,包括了编写Golang程序以搜索排序数组中的元素的使用技巧和注意事项,需要的朋友参考一下 解决这个问题的方法 步骤1:将数组从第0个索引迭代到n-1,其中n是给定数组的大小。 步骤2:声明low = 0th索引和high = n-1。启动一个for循环,直到低电平小于高电平为止。 步骤3:找到mid =(low + high)/ 2,如果中

  • 编写一个程序,返回一个新数组,该数组包含所有大于数组中第一个值的值。如果数组中没有大于第一个值的值,则返回空数组。如果数组为空,则返回一个空数组。 我这样解决这个问题: 谢谢