Computer >> Máy Tính >  >> Lập trình >> C ++

In một chuỗi ở dạng sóng trong C ++


Trong bài toán này, chúng ta cho một chuỗi và một số nguyên n. Nhiệm vụ của chúng tôi là in chuỗi đã cho dưới dạng mẫu sóng trong tổng số n dòng.

Hãy lấy một ví dụ để hiểu vấn đề,

Input: Tutorial n = 3
Output:
T             r
   U       o       i       s
      t                l

Các mẫu sóng được in bằng cách in lần lượt từng ký tự của chuỗi trong dòng tiếp theo và dấu cách tab từ phần tử tiếp theo cho đến dòng thứ n. Và tab in khoảng cách đến dòng trên cho đến dòng đầu tiên và theo cùng một mẫu cho đến khi chuỗi có các ký tự.

Ví dụ

Đoạn mã dưới đây cung cấp cho việc triển khai giải pháp của chúng tôi,

#include<bits/stdc++.h>
using namespace std;
void printWavePattern(string s, int n) {
   if (n==1) {
      cout<<s;
      return;
   }
   int len=s.length();
   char a[len][len]={ };
   int row=0;
   bool down;
   for (int i=0; i<len; i++) {
      a[row][i]=s[i];
      if (row==n-1)
         down=false;
      else if (row==0)
         down=true;
         (down)?(row++):(row--);
   }
   for (int i=0; i<n; i++) {
      for (int j=0; j<len; j++) {
         cout<<a[i][j]<<" ";
      }
      cout<<endl;
   }
}
int main() {
   string str = "TutorialsPoint";
   int n = 4;
   cout<<n<<" Line wave pattern '"<<str<<"' is:\n";
   printWavePattern(str, n);
}

Đầu ra

4 Line wave pattern 'TutorialsPoint' is −
T    a    n
u   i l    i t
t    r    s o
   o    P