看板 Programming
作者 Knuckles (阿德)
標題 Re:
 本來要出給學弟當練習的題目
時間 2010年11月12日 Fri. PM 04:27:25


※ 引述《abc1231qa》之銘言:
> 讓使用者輸入一個奇數
> 然後用*畫成正方形 一圈一圈的畫出
> 如下
N=9

改一下座標,(x,y)為(i,j)位移 -(N-1)/2 = -4

    0 1 2 3 4 5 6 7 8 →i
   -4-3-2-1 0 1 2 3 4 →x
 -4*********
 -3*       *
 -2* ***** *
 -1* *   * *
  0* * * * *
  1* *   * *
  2* ***** *
  3*       *
  4*********
 
 y

中間的*: (0,0)

第一圈*: |x|,|y|都小於等於2 且 |x|=2或|y|=2時 → |x|與|y|的最大值為2時

任一點(x,y): 設 r = max(|x|,|y|),若 r 為偶數,則該點為*

程式隨便寫寫
[code=cpp]
for(i=0;i<N;i++){
	
for(j=0;j<N;j++){
	
	
x = i - (N-1)/2;
	
	
y = j - (N-1)/2;
	
	
r = max(abs(x),abs(y));
	
	
if(r%2==0) cout << "*";
	
	
else       cout << " ";
	
}
	
cout << "\n";
}
其中 max(a,b) 為取a,b的最大值,abs(x)為取x的絕對值


--
--
※ 來源: Disp BBS 看板: Programming 文章連結: http://disp.cc/b/33-KkK
※ 作者: Knuckles  時間: 2010-11-12 16:27:25  來自: 111-248-4-134.dynamic.hinet.net
※ 同主題文章:
Re: [CODE] 本來要出給學弟當練習的題目
11-12 16:27 Knuckles
Knuckles: Re: [CODE] 本來要出給學弟當練習的題目 - Programming板