题目详情:
题目描述
数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中 N个整数。
现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?
解题思路:
这题首先需要讲输入的数列排序,之后查找到最小的等差数即可
代码实现:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
int step = arr[n-1];
for (int i = 1 ; i < n ;i++){
if (arr[i] - arr[i - 1] < step){
step = arr[i] - arr[i - 1];
}
}
if (step == 0){
System.out.println(n);
return;
}
int sum = (arr[n - 1] - arr[0]) / step + 1;
System.out.println(sum);
sc.close();
}
答案:
如上