ホームページ >バックエンド開発 >C++ >X スター パターンを印刷する C++ プログラム

X スター パターンを印刷する C++ プログラム

PHPz
PHPz転載
2023-09-13 11:45:031231ブラウズ

X スター パターンを印刷する C++ プログラム

ピラミッド、正方形、ひし形など、さまざまな形を表す星型パターンは

基本的なプログラミングとロジック開発の共通部分。私たちはさまざまな問題に直面しています プログラミングでループ文を見るとき、星と数字のパターンが関係します。 この記事では、アスタリスクを使用して X または十字を印刷する方法を説明します。

同じ 2 つのメソッドを見ていきます。最初のものは少し複雑ですが、次のものは この方法は非常に効率的です。

星型パターン (スペースを 2 セット使用)

リーリー

このパターンの場合、行数は n = 5 です。こちらは上半分用です。合計 X パターンは 2n – 1

次の表を使用してこれを行う方法を見てみましょう -

の中国語訳: の中国語訳は次のとおりです: ###説明する### 1 の翻訳は次のとおりです: ###7### です。 2 の翻訳は次のとおりです: 2 の中国語訳: 4 の中国語訳: 5 の翻訳は次のとおりです: の中国語訳: の中国語訳: 2 ###7### 21 の翻訳は次のとおりです: の翻訳は次のとおりです: 2 ###7### を実行します。 i

j の範囲が 1 から i - 1 の場合、次を実行します。

    空のスペースを表示
  • ###仕上げる###
  • 星を表示
    • i と n が異なる場合、
      • j の範囲が 1 ~ 2(n - i) - 1 の場合、次を実行します。
        • 空のスペースを表示
      • ###仕上げる###
      • 星を表示
      • 終わってしまったら
          • ###さもないと
          • j の範囲が 1 ~ 2n - i - 1 の場合、次を実行します。
        • 空のスペースを表示
        • ###仕上げる###
        • 星を表示
      • j の範囲が 1 ~ 2(i - n) - 1 の場合、次を実行します。
      • 空のスペースを表示
    • ###仕上げる###
        星を表示
        • 終わってしまったら
      • カーソルを次の行に移動します
      • ###仕上げる###
      • ###例### リーリー ###出力### リーリー
      • 出力 (n = 10)
          リーリー
        • グリッドメソッドを使用する
        同じ問題はグリッドを考慮することで解決でき、このグリッドから次のように計算できます。 星が印刷される場所とスペースが印刷される場所の数式。

行番号 Star Count星の数 残りスペース Space Between Spacing
1 2 0i = n の場合は星を出力し、それ以外の場合は 2 を出力します。左側のスペースは (i – 1)、スペース間のスペースは 2(n – i) - 1 2
11 5 3
2 3 4
2 3 1 5
11 44 -- 6
3 1 n - (i - n) - 1 = 2n - i - 1 のように、左側の星は減少しています。スペースの数は次のようになります: 2 * (i - n) - 1 2
3 8 2
1 5 99
0 ###アルゴリズム### nを入力として読み取ります i の範囲が 1 から 2n - i の場合、
##

从上面的网格中,很容易理解,星星只会在列中放置 数字与行号(对角线)相同,列号为 (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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。