Re: [問題] 打星號畫圖

看板C_and_CPP作者 (Alien)時間15年前 (2009/11/04 03:31), 編輯推噓4(401)
留言5則, 4人參與, 最新討論串3/12 (看更多)
※ 引述《tokyobabylon (paris)》之銘言: : 今天遇到一題在螢幕上show星號畫圖的問題 : * : ** : *** : 一般是使用兩個迴圈... : for(int i=1; i<n;i++) : fot(int j=1; j<=i;j++) : cout<<"*"; : 但今天的題目是"限定只能用一個迴圈" : so 單就這題來說是想到 : #include<iostream> : #include<cstdlib> : #include<string> : #include<cstring> : using namespace std; : int main() : { : char a[]="*"; : for(i=0;i<3;i++) : { : cout<<a<<endl; : strcat(a,"*"); : } : system("pause"); : return 0; : } : 但有兩個問題 : 1.一開始宣告我若是宣告string a="*"; : 在strcat那邊就過不了... : 2.如果反過來... : *** : ** : * : 要怎麼做阿? : 3.如果不用strcat這種方法 : 是否有其它較直觀的解法呢? : (當然還是限定one-loop) 你當是 psuedo code 看好了 :P char * LONG_STAR_STRING = new char[n+1]; memset(LONG_STAR_STRING, '*'); LONG_STAR_STRING[n] = '\0'; for (i = 0; i < n; i++) { printf(LONG_STAR_STRING + n - i); printf("\n"); } delete[] LONG_STAR_STRING; 簡單來說就是弄一條夠長的 ******* 然後每次靠 substring 來決定印出的長度 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82 ※ 編輯: adrianshum 來自: 202.155.236.82 (11/04 11:32)

11/04 11:32, , 1F
果然有這種倒著來的方法出現了XD
11/04 11:32, 1F

11/04 11:38, , 2F
這方法滿有趣的
11/04 11:38, 2F

11/04 11:43, , 3F
+ i - 1 ?
11/04 11:43, 3F

11/04 14:48, , 4F
+n - i 才對 XDD 現在改
11/04 14:48, 4F
※ 編輯: adrianshum 來自: 202.155.236.82 (11/04 14:49)

11/04 14:58, , 5F
唉呀 我也昏了 ~_~ + i 不就是正階梯形了
11/04 14:58, 5F
文章代碼(AID): #1AyFM4jM (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
3
8
完整討論串 (本文為第 3 之 12 篇):
問題
7
8
文章代碼(AID): #1AyFM4jM (C_and_CPP)