Have the function ArithGeo(arr) take the array of numbers stored in arr and return the string "Arithmetic" if the sequence follows an arithmetic pattern or return "Geometric" if it follows a geometric pattern. If the sequence doesn't follow either pattern return -1. An arithmetic sequence is one where the difference between each of the numbers is consistent, whereas, in a geometric sequence, each term after the first is multiplied by some constant or common ratio.
Arithmetic example: [2, 4, 6, 8] and Geometric example: [2, 6, 18, 54].Negative numbers may be entered as parameters, 0 will not be entered, and no array will contain all the same elements
Java
import java.util.Scanner;
public class ArithGeo {
String ArithGeo(int[] arr) {
if (isArithmetic(arr)) {
return "Arithmetic";
} else if (isGeometric(arr)) {
return "Geometric";
}
return "-1";
}
boolean isArithmetic(int[] arr) {
int diff = arr[1] - arr[0];
int previousDiff = diff;
for (int i = 2; i < arr.length; i++) {
diff = arr[i] - arr[i - 1];
if (diff != previousDiff) {
return false;
}
previousDiff = diff;
}
return true;
}
boolean isGeometric(int[] arr) {
int diff = arr[1] / arr[0];
int previousDiff = diff;
for (int i = 2; i < arr.length; i++) {
diff = arr[i] / arr[i - 1];
if (diff != previousDiff) {
return false;
}
previousDiff = diff;
}
return true;
}
public static void main (String[] args) {
// keep this function call here
Scanner s = new Scanner(System.in);
ArithGeo c = new ArithGeo();
System.out.print(c.ArithGeo(new int[] {2, 6, 18, 54}));
}
}