本文主要是介绍递归——分治法(输出十字架),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:
以图形中点为中心点,分成4个area
每个area里面进行fun函数操作,找到中心点,赋+
每个area的开始位置和结束位置决定了这个area
#include<stdio.h>
#include<string.h>
int array[65][65];
int n;
void fun(int ksh,int ksl,int jsh,int jsl)
{if(ksh>jsh||ksl>jsl) return; int midh=(ksh+jsh)/2;int midl=(ksl+jsl)/2;array[midh][midl]=1;fun(ksh,ksl,midh-1,midl-1); //area1fun(ksh,midl+1,midh-1,jsl); //area2fun(midh+1,ksl,jsh,midl-1); //area3fun(midh+1,midl+1,jsh,jsl); //area4}int main()
{int i,j;scanf("%d",&n);
// for(j=1;j<=n;j++)
// for(i=1;i<=n;i++)
// array[j][i]=0; //a[][]置零
// fun(1,1,n,n);for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(array[i][j]==1)printf("+");else if(array[i][j]==0)printf("0"); }printf("\n");} return 0;
}
这篇关于递归——分治法(输出十字架)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!