public class TestMain {
public static void main(String[] args) {
// 判断三个整数是否相邻
List<Integer> list = new ArrayList<>();
System.out.println("请输入三个数");
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
list.add(scanner.nextInt());
}
System.out.println("三个数为: " + list.toString());
System.out.println("三个整数是否相邻: true相邻,false:不相邻: ");
System.out.println(judgeAdjacent(list));
}
public static String judgeAdjacent(List<Integer> list) {
if (list.size() < 3) {
return "FALSE";
}
int a = list.get(0);
int b = list.get(1);
int c = list.get(2);
if (((Math.abs(a - b) <= 2) && (Math.abs(b - c) <= 2) && (Math.abs(c - a) <= 2) && ((a - b) * (b - c) * (c - a) != 0))) {
return "TRUE";
} else {
return "FALSE";
}
}
}
运行结果:
public class Test{
private static boolean judege(int a[]) {
int min=Integer.MAX_VALUE;
int max=Integer.MIN_VALUE;
for (int i = 0; i < a.length; i++) {
if (a[i]!=0) {
if (min>a[i]) {
min=a[i];
}
if (maxa.length-1) {
return false;
}else {
return true;
}
}
public static void main(String[] args) {
int a[]={8,5,0,10,6,7,0,0};
if (judege(a)) {
System.out.println("该数组是相邻的!");
}else {
System.out.println("该数组不是相邻的!");
}
}
}
三个数相加除以3是否被三个数包含
简单说是连续相邻的数必然满足a+c=2b,因为满足这个式子的两个数和b等距,所以这个距离为1的时候,三个数就相邻
注意,虽然a+c=2b等价于(a+c)/2=b,
但是我们一般不用除法,因为可能会发生误差,除数为0经常需要特判
(1+4)/2向下取整2,但是1到2和4到2的距离是不相等的,不用浮点型计算结果则不正确
而显然(1+4)不等于2*2,所以比较过程中,能用乘法时尽量不用除法
private boolean isTogether(int a, int b, int c){
//保持a<=b<=c,不满足则交换
if(b<a)
return isTogether(b,a,c);
if(c<b)
return isTogether(a,c,b);
return b*2==a+c && a+1==b;
}
希望能帮助到你。
import java.util.Scanner;
/**
* @author: abzz
* @Date: 2021-10-29 13:53
* @Description: 判断三个整数是否相邻
*/
public class IntIsAdjoin {
public static void main(String[] args) {
int[] arr = new int[3];
bubbleSort(arr);
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第1个数:");
int num1 = scanner.nextInt();
System.out.print("请输入第2个数:");
int num2 = scanner.nextInt();
System.out.print("请输入第3个数:");
int num3 = scanner.nextInt();
// 首先由小到大进行排序(由大到小也行)
arr[0] = num1;
arr[1] = num2;
arr[2] = num3;
bubbleSort(arr);
// 然后判断相邻两个值的差值的绝对值是不是1
judjeAdjoin(arr);
}
// 冒泡排序
public static void bubbleSort(int[] srcArr){
int length = srcArr.length;
for (int i = (length - 1); i > -1; i--) {
for (int j = (length - 1); j >= (length - i); j--) {
if(srcArr[j] < srcArr[j-1]){
int temp = srcArr[j];
srcArr[j] = srcArr[j-1];
srcArr[j-1] = temp;
}
}
}
}
// 判断结果
public static void judjeAdjoin(int[] srcArr){
for (int i = 0; i < srcArr.length; i++) {
if((i+1) == srcArr.length){
break;
}
int diff = srcArr[i + 1] - srcArr[i];
if(diff != 1){
System.out.println("FALSE");
return;
}
}
System.out.println("TRUE");
}
}