📜  谢尔宾斯基三角

📅  最后修改于: 2022-05-13 01:57:58.767000             🧑  作者: Mango

谢尔宾斯基三角

谢尔宾斯基三角形是一个分形且有吸引力的固定集合,整体形状为等边三角形。它递归地细分为更小的三角形。

Sierpinski_triangle1

例子 :

Input : n = 4
Output :
   * 
  * * 
 *   * 
* * * * 

Input : n = 8
Output :
       * 
      * * 
     *   * 
    * * * * 
   *       * 
  * *     * * 
 *   *   *   * 
* * * * * * * * 

方法 :

下面是实现谢尔宾斯基三角形的程序

C++
// C++ program to print sierpinski triangle.
#include 
using namespace std;
 
void printSierpinski(int n)
{
    for (int y = n - 1; y >= 0; y--) {
 
        // printing space till
        // the value of y
        for (int i = 0; i < y; i++) {
            cout<<" ";
        }
 
        // printing '*'
        for (int x = 0; x + y < n; x++) {
 
        // printing '*' at the appropriate position
        // is done by the and value of x and y
        // wherever value is 0 we have printed '*'
        if(x & y)
            cout<<" "<<" ";
        else
            cout<<"* ";
        }
 
        cout<


Java
// Java program to print
// sierpinski triangle.
import java.util.*;
import java.io.*;
 
class GFG
{
    static void printSierpinski(int n)
    {
        for (int y = n - 1; y >= 0; y--) {
 
            // printing space till
            // the value of y
            for (int i = 0; i < y; i++) {
                System.out.print(" ");
            }
 
            // printing '*'
            for (int x = 0; x + y < n; x++) {
 
                // printing '*' at the appropriate
                // position is done by the and
                // value of x and y wherever value
                // is 0 we have printed '*'
                if ((x & y) != 0)
                    System.out.print(" "
                                    + " ");
                else
                    System.out.print("* ");
            }
 
            System.out.print("\n");
        }
    }
 
    // Driver code
    public static void main(String args[])
    {
        int n = 16;
 
        // Function calling
        printSierpinski(n);
    }
}
 
// This code is contributed by Sahil_Bansall


Python3
# Python 3 program to print
# sierpinski triangle.
 
def printSierpinski( n) :
     
    y = n - 1
    while(y >= 0) :
         
        # printing space till
        # the value of y
        i = 0
        while(i < y ):
            print(" ",end="")
            i = i + 1
 
        # printing '*'
        x = 0
        while(x + y < n ):
 
            # printing '*' at the appropriate
            # position is done by the and
            # value of x and y wherever value
            # is 0 we have printed '*'
            if ((x & y) != 0) :
                print(" ", end = " ")
            else :
                print("* ", end = "")
            x =x + 1
         
        print()
        y = y - 1
         
# Driver code
n = 16
 
# Function calling
printSierpinski(n)
 
 
# This code is contributed by Nikita Tiwari.


C#
// C# program to print
// sierpinski triangle.
using System;
 
class GFG {
    static void printSierpinski(int n)
    {
        for (int y = n - 1; y >= 0; y--) {
 
            // printing space till
            // the value of y
            for (int i = 0; i < y; i++) {
                Console.Write(" ");
            }
 
            // printing '*'
            for (int x = 0; x + y < n; x++) {
 
                // printing '*' at the appropriate
                // position is done by the and
                // value of x and y wherever value
                // is 0 we have printed '*'
                if ((x & y) != 0)
                    Console.Write(" " + " ");
                else
                    Console.Write("* ");
            }
 
            Console.WriteLine();
        }
    }
 
    // Driver code
    public static void Main()
    {
        int n = 16;
 
        // Function calling
        printSierpinski(n);
    }
}
 
// This code is contributed by vt_m


PHP
= 0; $y--)
    {
 
        // printing space till
        // the value of y
        for ($i = 0; $i < $y; $i++)
        {
            echo " ";
        }
 
        // printing '*'
        for ($x = 0; $x + $y < $n; $x++)
        {
 
        // printing '*' at the appropriate
        // position is done by the and value
        // of x and y wherever value is 0 we
        // have printed '*'
        if($x & $y)
            echo"  ";
        else
            echo"* ";
        }
 
        echo "\n";
    }
}
 
// Driver code
$n = 16;
printSierpinski($n);
 
// This code is contributed by Mithun Kumar
?>


Javascript


输出 :

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

参考:维基