![]() |
#2
纯蓝之刃2021-06-07 08:57
|

#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');
}
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');
}