我无法完成这个问题。编写一个程序,该程序将搜索数组以查找第一个奇数。如果找到了奇数,则找到奇数之后的第一个偶数。返回第一个奇数和第一个偶数之间的距离。如果找不到奇数或奇数之后没有偶数,则返回-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
我将嵌套一个循环,首先进行迭代以找到第一个奇数;然后从那里进行迭代以获得均匀的值。从第一个奇数开始迭代后,可以终止外循环。就像是
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; }
输出(根据要求)