关闭

图形题

21人阅读 评论(0) 收藏 举报
#include<stdio.h>
int a[100][100];
int i,j,b;
int main()
{
	void holy(int n);
	int n;
	scanf("%d",&n);
	b=n;
	a[0][0]=1;
	holy(n);
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("%d\t",a[i][j]);
		}
		printf("\n");
	}
	return 0;
}
void holy(int n)
{
	if((b-n)<(b+1)/2||n>(b+1)/2)
	{
		if((b-n)<(b+1)/2)
		{
			for(j=b-n;j<n;j++)
			{
				a[b-n][j]=a[b-n][j-1]+1;
			}
			for(i=b+1-n;i<n;i++)
			{
				a[i][n-1]=a[i-1][n-1]+1;
			}
		}
		if(n>(b+1)/2)
		{
			for(j=n-2;j>=b-n;j--)
			{
				a[n-1][j]=a[n-1][j+1]+1;
			}
			for(i=n-2;i>=b+1-n;i--)
			{
				a[i][b-n]=a[i+1][b-n]+1;
			}
		}
		holy(n-1);
	}
	else return ;
}
本题使用的是递归思想。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22次
    • 积分:10
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档
    阅读排行
    评论排行