等差数列 蓝桥杯
数学老师给小明出了一道等差数列求和的题目。
但是粗心的小明忘记了一部分的数列,只记得其中 NN 个整数。
现在给出这 NN 个整数,小明想知道包含这 NN 个整数的最短的等差数列有几项?
输入格式
输入的第一行包含一个整数 NN。
第二行包含 N 个整数 A1,A2,⋅⋅⋅,AN(注意A1∼AN 并不一定是按等差数
列中的顺序给出)
输出格式
输出一个整数表示答案。
数据范围
2≤N≤100000
0≤Ai≤109
输入样例:
import java.util.*;
public class Main{static int []arr = new int [100005];public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();for(int i = 0;i < n;i ++) {arr[i] = sc.nextInt();}Arrays.sort(arr,0,n);int d = 0;for(int i = 1;i < n;i ++) {d = gcd(d,arr[i] - arr[0]);}if(d == 0) {System.out.println(n);}else {System.out.println((arr[n-1] - arr[0])/d + 1);}}static int gcd(int a,int b) {return b == 0 ? a : gcd(b,a%b);}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
