Re: [問題] 打星號畫圖
※ 引述《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
11/04 11:32, 1F
推
11/04 11:38, , 2F
11/04 11:38, 2F
推
11/04 11:43, , 3F
11/04 11:43, 3F
→
11/04 14:48, , 4F
11/04 14:48, 4F
※ 編輯: adrianshum 來自: 202.155.236.82 (11/04 14:49)
推
11/04 14:58, , 5F
11/04 14:58, 5F
討論串 (同標題文章)