[問題] 一題C++的圖形問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Microsoft VisualC++ 2010 Express
問題(Question):
有點沒有頭緒...
餵入的資料(Input):N
輸入n >= 4
預期的正確結果(Expected Output):
輸入 n 產生以下圖形:
4
A A
ABA ABA
ABCBA ABCBA
ABCDCBA ABCDCBA
ABCDCBA ABCDCBA
ABCBA ABCBA
ABA ABA
A A
5
A A A
ABA ABA ABA
ABCBA ABCBA ABCBA
ABCDCBA ABCDCBA ABCDCBA
ABCDEDCBA ABCDEDCBA ABCDEDCBA
ABCDEDCBA ABCDEDCBA
ABCDCBA ABCDCBA
ABCBA ABCBA
ABA ABA
A A
6
A A A
ABA ABA ABA
ABCBA ABCBA ABCBA
ABCDCBA ABCDCBA ABCDCBA
ABCDEDCBA ABCDEDCBA ABCDEDCBA
ABCDEFEDCBA ABCDEFEDCBA ABCDEFEDCBA
ABCDEFEDCBA ABCDEFEDCBA ABCDEFEDCBA
ABCDEDCBA ABCDEDCBA ABCDEDCBA
ABCDCBA ABCDCBA ABCDCBA
ABCBA ABCBA ABCBA
ABA ABA ABA
A A A
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <iostream>
#include <iomanip>
using namespace std ;
int main(){
int i ;
int j ;
int n;/*階乘數*/
cout << "請輸入一個大於等於4的整數n以印出上階層為n的菱形:";
cin >> n;
if(n>=4){/*判斷n是否大於等於4*/
for( i=0 ; i<n ; ++i) {/*畫出菱形的上半部,外迴圈1*/
for( j = n - i - 1 ; j > 0 ; --j ){
cout << " " ;
}
for( j=0 ; j < 2 * i + 1 ; ++j ){
cout << static_cast<char>('A' + j);
}
cout << endl;
}
for(i = 0; i< n - 1 ; ++i){/*畫出菱形的下半部,外迴圈2*/
for( j=0 ; j < i + 1 ; ++j){
cout << " ";
}
for( j=0 ; j < 2*(n-i)-3 ; ++j){
cout << static_cast<char>('A' + j);
}
cout << endl;
}
}
else{
cout << "ERROR!" << endl << "請重新輸入一個大於等於4的整數n" << endl;
}
system("pause");
return 0;
}
----------------------------------------------------------------------------
個人的一些想法:
題目的三角形是以第一行A 第二行ABA 第三行ABCBA .....的順序去印的
而我想了半天最多也只能寫到第一行A 第二行ABC 第三行ABCDE ....(上面的code)
我覺得有字母的上半部可能是一半印A 另一半印*
AB **A
ABC ***BA
ABCD ****CBA
然後再設兩個變數 k(控制上三角),l(控制下三角)
if(k%2==1){印出字母} else{印空白};if(l%2==0){印出空白}else{印出字母}
雖然個別寫可能可以...不過全部併起來之後讓我有一點沒頭緒...
還請各位大大幫忙 感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.189.59
※ 編輯: free94531 來自: 114.32.189.59 (10/21 13:46)
推
10/21 16:02, , 1F
10/21 16:02, 1F
→
10/21 16:03, , 2F
10/21 16:03, 2F
推
10/21 16:17, , 3F
10/21 16:17, 3F
推
10/21 19:11, , 4F
10/21 19:11, 4F
推
10/21 20:22, , 5F
10/21 20:22, 5F
→
10/21 20:23, , 6F
10/21 20:23, 6F
可是我不知道菱形和菱形間的空白怎麼處理ㄟ....@@
※ 編輯: free94531 來自: 114.32.189.59 (10/21 21:42)
推
10/21 21:58, , 7F
10/21 21:58, 7F
→
10/21 22:35, , 8F
10/21 22:35, 8F
→
10/21 22:36, , 9F
10/21 22:36, 9F
→
10/21 22:37, , 10F
10/21 22:37, 10F
→
10/21 22:38, , 11F
10/21 22:38, 11F
→
10/21 22:38, , 12F
10/21 22:38, 12F
恩恩 謝謝各位大大的回答喔~!
※ 編輯: free94531 來自: 114.32.189.59 (10/25 23:33)