>백엔드 개발 >C++ >X 별 패턴을 인쇄하는 C++ 프로그램

X 별 패턴을 인쇄하는 C++ 프로그램

PHPz
PHPz앞으로
2023-09-13 11:45:031230검색

X 별 패턴을 인쇄하는 C++ 프로그램

피라미드, 정사각형, 마름모 등 다양한 모양의 별 패턴을 보여주는 것은

기본 프로그래밍 및 논리 개발의 공통 부분입니다. 우리는 다양한 문제에 직면해 있다 프로그래밍에서 루프문을 보면 별표와 숫자 패턴이 관련되어 있습니다. 이 문서에서는 별표를 사용하여 X 또는 십자 표시를 인쇄하는 방법을 보여줍니다.

동일한 두 가지 방법을 살펴보겠습니다. 첫 번째는 좀 복잡하지만 다음은 이 방법은 매우 효율적입니다.

별 패턴(공백 두 세트 사용)

으아아아

이 모드의 경우 행 수는 n = 5입니다. 이것은 상반신을 위한 것입니다. 총 X 패턴은 2n – 1입니다.

아래 양식을 사용하여 이를 수행하는 방법을 살펴보겠습니다−

의 중국어 번역은 다음과 같습니다. 의 중국어 번역은 다음과 같습니다. 의 번역은 다음과 같습니다: 입니다. 의 번역은 다음과 같습니다: 의 중국어 번역은 입니다. 의 중국어 번역은 입니다. 의 번역은 다음과 같습니다: 의 중국어 번역은 입니다. 의 중국어 번역은 입니다. 의 번역은 다음과 같습니다: 은 다음과 같이 번역됩니다.
줄번호 별 개수별 개수 남은 공간 Space Between 간격 설명
11 2 0 7 i = n이면 별표를 인쇄하고, 그렇지 않으면 2를 인쇄합니다. 왼쪽의 공백은 (i – 1)이고 공백 사이의 공백은 2(n – i) - 1
2 2 11 5
3 2 2 3
442 3 1
5511 44--
6 2 3 1 왼쪽의 별은 n - (i - n) - 1 = 2n - i - 1과 같이 감소하고 있습니다. 공백 수는 다음과 같습니다: 2 * (i - n) - 1
7 2 2 3
8 2 11 5
99 2 0 7

알고리즘

  • n을 입력으로 읽습니다
  • i의 범위가 1에서 2n인 경우 - i를 실행합니다.
    • i
    • 1부터 i - 1까지의 j에 대해 다음을 수행하세요.
      • 빈 공간 표시
    • 쇼스타
    • i와 n이 다르다면,
      • 1에서 2(n - i) - 1 사이의 j에 대해 do
        • 빈 공간 표시
      • 쇼스타
    • 종료된다면
  • 그렇지 않으면
    • j 범위가 1에서 2n인 경우 - i - 1, do
      • 빈 공간 표시
    • 쇼스타
    • 1에서 2(i - n) - 1 사이의 j에 대해 do
      • 빈 공간 표시
    • 쇼스타
  • 종료된다면
  • 커서를 다음 줄로 이동
  • 으아아아

    출력

    으아아아

    출력(n=10)

    으아아아

    그리드 방식 사용

    그리드를 고려하면 동일한 문제를 해결할 수 있으며, 이 그리드에서 다음을 계산할 수 있습니다. 별이 인쇄되는 공식과 공백이 인쇄되는 공식입니다.

    * *
    * *
    * *
    * *
    *
    * *
    * *
    * *
    * *

    从上面的网格中,很容易理解,星星只会在列中放置 数字与行号(对角线)相同,列号为 (2n + 1 – i)

    算法

    • 读取 n 作为输入
    • m = 2n - i
    • 对于从 1 到 m 的 i,执行
      • 对于 j 从 1 到 m 的范围,执行
        • 如果 j 与 i 相同或 j 与 (m + 1) - i 相同,则执行
          • 显示星星
        • 否则
          • 显示空间
        • 如果结束
      • 结束
      • 将光标移至下一行
    • 结束

    示例

    #include <iostream>
    using namespace std;
    void solve( int n ){
       int m = 2*n - 1;
       for ( int i = 1; i <= m; i++ ) {
          for ( int j = 1; j <= m; j++ ) {
             if (j == i || j == (m + 1 - i))
                cout << "* ";
             else
                cout << ". ";
          }
          cout << endl;
       }
    }
    int main(){
       int n = 6;
       cout << "X Star Pattern for " << n << " lines." << endl;
       solve( n );
    }
    

    输出

    X Star Pattern for 6 lines.
    * . . . . . . . . . * 
    . * . . . . . . . * . 
    . . * . . . . . * . . 
    . . . * . . . * . . . 
    . . . . * . * . . . . 
    . . . . . * . . . . . 
    . . . . * . * . . . . 
    . . . * . . . * . . . 
    . . * . . . . . * . . 
    . * . . . . . . . * . 
    * . . . . . . . . . * 
    

    输出(当n = 8时)

    X Star Pattern for 8 lines.
    * . . . . . . . . . . . . . * 
    . * . . . . . . . . . . . * . 
    . . * . . . . . . . . . * . . 
    . . . * . . . . . . . * . . . 
    . . . . * . . . . . * . . . . 
    . . . . . * . . . * . . . . . 
    . . . . . . * . * . . . . . . 
    . . . . . . . * . . . . . . . 
    . . . . . . * . * . . . . . . 
    . . . . . * . . . * . . . . . 
    . . . . * . . . . . * . . . . 
    . . . * . . . . . . . * . . . 
    . . * . . . . . . . . . * . . 
    . * . . . . . . . . . . . * . 
    * . . . . . . . . . . . . . * 
    

    结论

    星形模式使用简单,对于学习编程循环思想很有用。这 文章演示了如何使用 C++ 显示左和右半菱形图案 右对齐的半菱形。拍摄后,X 或十字图案将使用星号显示 考虑n行计数。为此,我们提供了两种方法。一聘 填充和空白空间,而另一个则利用网格计算。而不是添加 空格,我们添加了点。如果没有,他们偶尔会从输出中删除空格。

    위 내용은 X 별 패턴을 인쇄하는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제