日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

团体程序设计天梯赛——L1-039 古风排版

發布時間:2024/1/8 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 团体程序设计天梯赛——L1-039 古风排版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

團體程序設計天梯賽——L1-039 古風排版

https://pintia.cn/problem-sets/994805046380707840/problems/994805091888906240

中國的古人寫文字,是從右向左豎向排版的。本題就請你編寫程序,把一段文字按古風排版。

輸入格式:

輸入在第一行給出一個正整數N(<100),是每一列的字符數。第二行給出一個長度不超過1000的非空字符串,以回車結束。

輸出格式:

按古風格式排版給定的字符串,每列N個字符(除了最后一列可能不足N個)。

輸入樣例:

4
This is a test case

輸出樣例:

asa T
st ih
e tsi
ce s

先輸入n和字符串s,輸入字符串s的時候用cin會讀不進空格和后面的部分,所以使用getline(),注意前面getchar()讀走回車符,如果s的長度不能整除n,就在后面填充空格" ",讓s的長度正好是n的整數倍,然后古風排版,其實就是對字符串s的下標進行處理,就拿輸入樣例舉例,“This is a test case”,總共19個字符,20是4的倍數,所以進行填充后就是"This is a test case ",下標就是0-19,然后用雙重for循環進行輸出,外層是行,內層是列,所以外層的for循環有n行,內層又是怎樣輸出的呢?

首先看我們要輸出的第一個字符,是下標為16的字符’a’,下標為s.length()-n(20-4),然后是下標為12的字符’s’,也就是每輸出一個字符,下一個字符的下標要減n,什么時候這一行輸出結束了呢?最后一列的字符下標肯定是在[0,n-1]之間的,再減n就一定會小于0,所以我們設定內層for循環的結束條件為j>=0,然后輸出換行,進行第二行的輸出,第二行的第一個是下標為17的字符’s’,于是發現每一行的輸出都要減去 行數-1 ,也就是每一行的起始位置都可以表示為s.length()-n+i,內層循環搞定,輸出即可。

#include<iostream> #include<string> using namespace std; int main(){int n,count=0;string s;cin>>n;getchar();getline(cin,s);if(s.length()%n!=0){while(s.length()%n!=0){s+=" ";}}for(int i=0;i<n;i++){for(int j=s.length()-n+i;j>=0;j-=n){cout<<s[j];}cout<<endl;} }

總結

以上是生活随笔為你收集整理的团体程序设计天梯赛——L1-039 古风排版的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。