看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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)
VictorTom:果然有這種倒著來的方法出現了XD 11/04 11:32
dendrobium:這方法滿有趣的 11/04 11:38
ledia:+ i - 1 ? 11/04 11:43
adrianshum:+n - i 才對 XDD 現在改 11/04 14:48
※ 編輯: adrianshum 來自: 202.155.236.82 (11/04 14:49)
ledia:唉呀 我也昏了 ~_~ + i 不就是正階梯形了 11/04 14:58