#include<stdio.h>
//冒泡排序
void bubble_sort(int a[],int n)
{
	int i,j,temp;
	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-i-1;j++)
		{
			if(a[j]>a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
}
int main()
{
	int n;
	int a[10000];//定义数组用于存放树的最高生长
	int index=0;//定义最大存放数量
	int x;
	//输入树的数量
	scanf("%d",&n);
//求树的最高生长,观察可知树的最高生长成对称,且每棵树的生长最高等于它自身之后的所有数木个数×2
//下面循环求前面一半的高度
	for(int i=n;i>n/2;i--)
	{
		x=(i-1)*2;
		if(index<10000)
		{
			a[index++]=x;
			printf("%d\n",x);
		}
	}
//a[index]是从大到小进行排序,利用冒泡排序将其从小到大排序
	bubble_sort(a,index);
//输出时,要注意如果树的总数是个数则是围绕中间数进行对称的,所以输出时要分情况,当树的总数是奇数时要从第二个数开始输出也就是a[1],偶数时从第一个数输出
	if((index+n/2)%2!=0)
	{
		for(int q=1;q<index;q++)
		printf("%d\n",a[q]);
	}
	if((index+n/2)%2==0)
	{
	    for(int c=0;c<index;c++)
	    printf("%d\n",a[c]);
	}
	
	
return 0;
}
点赞(1)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论