美麗的字符正方形FINAL


輸入一個長度不超過50的由小字字母構成的字符串,輸出由這個字符序列構成的最大的正方形。

輸入格式:
由小寫字母構成的一個字符串。
輸出格式:
將字符串圍成最大可能的正方形輸出,字符串從正方形的左上方開始,按順時針方向繞行。

輸入樣例1:

 

a

 

 輸出樣例1:

 

a

 

 輸入樣例2:

happy

輸出樣例2:

ha
pp

輸入樣例3:

abcdefghijklmn

輸出樣例3:

abcd
l  e
k  f
jihg

(摘自pintia.cn)

 

 

解答:

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 int main()
 5 {
 6     string str;                    //輸入的字符串
 7     int side,row(1);            //side是邊長,row是第幾行
 8     cin>>str;                    //輸入字符串
 9     side=str.length()/4+1;        //計算邊長
10     for(int i(0);i<side;i++)    //輸出第一行,長度為side
11         cout<<str[i];
12     if(side>1)                    //如果行數大於1
13     {
14         cout<<endl;
15         for(;row<side-1;row++)    //輸出剩余side-2行,不包括最后一行
16         {
17             cout<<str[(side-1)*4-row];
18             for(int k(0);k<side-2;k++)
19                 cout<<' ';
20             cout<<str[(side-1)+row]<<endl;
21         }
22         for(int i(0);i<side;i++)    //輸出最后一行
23             cout<<str[(side-1)*3-i];
24     }
25     return 0;
26 }

解析:

  見代碼注釋。

  std::ends和‘ ’的輸出不同,std::ends的輸出結果為‘\0’,雖然輸出的樣式相同,但是不是同一個字符。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM