解题思路: 将数列分奇数列和偶数列,最大生长数其实就是2*m-2,也就是循环一次即可,而数列两边实对称的,由此可得。
注意事项: 注意m在循环中的取值,切记数组底数
从零开始
参考代码:
#include<stdio.h>
int main()
{
int x,a,b,n,m;
scanf("%d",&n);
int q[10000];
if(n%2==0)
{
m=n/2-1; //这是判断奇数列还是偶数列//
}
else{
m=n/2-1;
}
for(x=0;x<n;x++)
{
q[x]=0;
}
for(x=n-1;x>m;x--)
{
q[x]=2*(x+1)-2; //此处是先求出对称右半部分的结果,应为只有右半部分下标可以求出结果,最后只需将其对称至左半部分即可//
}
int* p=q;
p+=n-1;
for(x=0;x<m+1;x++) //通过指针将右半部分对称//
{
q[x]=*p;
--p;
}
for(x=0;x<n;x++)
{
printf("%d\n",q[x]);
}
return 0;
}
0.0分
0 人评分