Given an array of integer, print true if two even and two odd numbers appear next to each other in the array
我尝试使用“boolean ”来解决这个问题,但没有得到预期的结果。
int[] arr={2,4,5,7,8,9,10};
int len=arr.length;
boolean bool = true;
for (int i=0; i<len-1; i++)
{
int n=arr[i];
int m=arr[i+1];
if (n%2==0 && m%2==0)
{
for (int j=i+2; j<len-1; j++)
{
int a=arr[j];
int b=arr[j+1];
if (a%2!=0 && b%2!=0)
{
bool=true;
break;
}
else
bool=false;
}
}
else
{
for (int j=i+2; j<len-1; j++)
{
int a=arr[j];
int b=arr[j+1];
if (a%2==0 && b%2==0)
{
bool=true;
break;
}
else
bool=false;
}
}
}
System.out.println("2Odd+2Even:"+bool);
Expected Result:
2Odd+2Even:true
Actual Result:
2Odd+2Even:false
最佳答案
问题是您的 break;
仅退出内部循环。即使找到匹配项后,您仍然会继续外循环,这将在下一次迭代中将 bool
设置为 false。
无需进行太多更改,您只需添加
if(bool){
break;
}
在外循环的末尾,找到匹配项后将其保留。
关于java - 两个偶数和两个奇数相邻出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57574479/