[問題] 請問遞迴畫菱形
請問要怎麼用遞迴畫菱形?
雖然我分解成一次畫一行, 然後再用其函數和靜態變數來用
感覺是偷吃步, 方法好像不是很好
請問有比較好的方法嗎?
p.s.程式有需要的人請自行取用
void diamond_ptline(int n, int m, char ch1, char ch2)
{
int j,i;
if(m==0)
return;
for(i=0;i<n;i++)
printf("%c",ch1);
for(j=0;j<m*2-1;j++)
printf("%c",ch2);
for(i=0;i<n;i++)
printf("%c",ch1);
puts("");
}
void diamond_print(int n, char ch1, char ch2)
{
static int x=n;
static int f=false;
if(n==x && f)
return ;
if(!n)
f=true;
diamond_ptline(n, x-n, ch1, ch2);
if(f==false)
diamond_print(n-1, ch1, ch2);
else
diamond_print(n+1, ch1, ch2);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.20.167
推
03/11 03:59, , 1F
03/11 03:59, 1F