/**
* 测试连续数组
* @author yangjie
*
*/
public class Test01 {
public static void main(String[] args) {
int[] arr= {9,3,4,6,8,10};
System.out.println(searchNum(arr,0,4,2));
}
/**
* 看数组在一定范围中是否存在等差数列
* @param arr 数组
* @param index 从数组索引起始位置
* @param n 项数
* @param d 公差
* @return
*/
public static Boolean searchNum(int[] arr,int index,int n,int d) {
int count=0;
int arrLength=arr.length;
if(arrLength-index>=n) {
for(int i=index;i<index+n;i++) {
count+=arr[i];
}
//等差数列求和
int sum=(n*arr[index])+(n*(n-1))*(d/2);
if(count ==sum) {
System.out.println("存在连续的数字,从索引"+index+"开始连续"+n+"个数字是公差为"+d+"的等差数列");
return true;
}else {
index=index+1;
//递归调用
Boolean flag=searchNum(arr,index,n,d);
return flag;
}
}
return false;
}
}
在开发需求中,判断子数组是否存在等差数列,所以本人就在eclipse中测试一下,如有问题请指出。