等差数列的子序列个数, 求指导算法
											自已写了一个,不知对不对. 用较小的数列测试是正确的. 程序代码:
程序代码:#include <stdio.h>
int adj(int *,int);
void print(int ,int ,int ,int *);
int main(void)
{
    int ar[]={2, 4, 6, 8, 10, 12}; 
    int len=sizeof(ar)/sizeof(ar[0]);
    printf("子序列数 = %d", adj(ar,len));
}
int adj(int *ar,int len)
{   
    int n=0;
    for (int i=2;i<len;i++)
        for (int j=0;j<=i-2;j++)
            for (int d=1;d<=(i-j)/2;d++)                
                if ((i-j) % d == 0){    
                    ++n;
                    print(i,j,d,ar);
                } 
    return n;                  
}
void print(int i,int j,int d,int *ar)
{
    for (;j<=i;j+=d)
        printf("%d ", ar[j]);
    putchar('\n');
}										
					
	


 
											





 
	    

 
	



