📜  打印三角形图案的递归程序

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

打印三角形图案的递归程序

我们在上一篇文章中讨论了迭代图案打印。
例子:

Input : 7
Output :                    
      *
     * *
    * * *
   * * * * 
  * * * * *
 * * * * * *
* * * * * * *

算法:-
第 1 步:- 首先考虑基本条件,即数字小于 0
第 2 步:- 执行递归调用,直到数字小于 0 即:- printPartten(n-1, k+1);
第 3 步:打印空格
第4步:-然后打印*直到数字
以下是上述方法的实现:

C++
// C++ program to print triangular patterns using Recursive
#include 
 
using namespace std;
void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
 
    // Recursive call
    printPartten(n - 1, k + 1);
 
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        cout << " ";
    for (i = 0; i < n; i++) // for print *
        printf("* ");
    printf("\n"); // for next line
}
 
int main()
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
    return 0;
}


Java
// Java program to print triangular patterns using Recursive
class GFG{
static void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
 
    // Recursive call
    printPartten(n - 1, k + 1);
 
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        System.out.printf(" ");
    for (i = 0; i < n; i++) // for print *
        System.out.printf("* ");
    System.out.printf("\n"); // for next line
}
 
public static void main(String[]args)
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
}
}


Python3
# Python 3 program to print triangular
# patterns using Recursive
 
def printPartten(n, k):
     
    if (n < 0): # Base condition
        return;
 
    # Recursive call
    printPartten(n - 1, k + 1);
 
    for i in range(0, k): # it makes spaces
        print(" ", end="");
    for i in range(0, n): # for print *
        print("* ", end = "");
    print("\n", end=""); # for next line
 
# Driver Code
n = 7;
 
# Call to printPartten function
printPartten(n, 0);
 
# This code is contributed
# by Akanksha Rai


C#
// C# program to print triangular
// patterns using Recursive
using System;
 
class GFG
{
static void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
 
    // Recursive call
    printPartten(n - 1, k + 1);
 
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        Console.Write(" ");
    for (i = 0; i < n; i++) // for print *
        Console.Write("* ");
    Console.Write("\n"); // for next line
}
 
// Driver Code
public static void Main()
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
}
}
 
// This code is contributed
// by Subhadeep


PHP


Javascript


C++
// C++ program to print reverse triangular
// patterns using Recursive
#include 
using namespace std;
 
void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        cout <<" ";
    for (i = 0; i < n; i++) // for print *
        cout <<"* ";
    cout <<"\n"; // for next line
 
    // Recursive calls
    printPartten(n - 1, k + 1);
}
 
int main()
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
    return 0;
}
// this code is contributed by shivanisinghss2110


C
// C program to print reverse triangular
// patterns using Recursive
#include 
#include 
 
void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        printf( " ");
    for (i = 0; i < n; i++) // for print *
        printf("* ");
    printf("\n"); // for next line
 
    // Recursive calls
    printPartten(n - 1, k + 1);
}
 
int main()
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
    return 0;
}


Java
// Java program to print reverse triangular
// patterns using Recursive
class GFG{
static void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        System.out.print(" ");
    for (i = 0; i < n; i++) // for print *
        System.out.print("* ");
    System.out.print("\n"); // for next line
 
    // Recursive calls
    printPartten(n - 1, k + 1);
}
 
public static void main(String[] args)
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
}
}


Python 3
# Python 3 program to print reverse
# triangular patterns using Recursive
 
def printPartten(n, k):
 
    if (n < 0): # Base condition
        return;
    for i in range(0, k): # it makes spaces
        print(" ", end = "")
    for i in range(0, n): # for print *
        print("*", end = " ")
    print("\n", end = "") # for next line
 
    # Recursive calls
    printPartten(n - 1, k + 1);
 
# Driver Code
n = 7;
 
# Call to printPartten function
printPartten(n, 0);
 
# This code is contributed
# by Akanksha Rai


C#
// C# program to print reverse triangular
// patterns using Recursive
using System;
 
class GFG
{
static void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        Console.Write(" ");
    for (i = 0; i < n; i++) // for print *
        Console.Write("* ");
    Console.Write("\n"); // for next line
 
    // Recursive calls
    printPartten(n - 1, k + 1);
}
 
// Driver Code
public static void Main()
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
}
}
 
// This code is contributed
// by PrinciRaj1992


PHP


Javascript


输出:
* 
     * * 
    * * * 
   * * * * 
  * * * * * 
 * * * * * * 
* * * * * * *

如何打印其反向图案?
只需将函数的递归行结束即可
例子:

Input : 7
Output : 
* * * * * * *
 * * * * * * 
  * * * * *    
   * * * *  
    * * *    
     * *          
      *

C++

// C++ program to print reverse triangular
// patterns using Recursive
#include 
using namespace std;
 
void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        cout <<" ";
    for (i = 0; i < n; i++) // for print *
        cout <<"* ";
    cout <<"\n"; // for next line
 
    // Recursive calls
    printPartten(n - 1, k + 1);
}
 
int main()
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
    return 0;
}
// this code is contributed by shivanisinghss2110

C

// C program to print reverse triangular
// patterns using Recursive
#include 
#include 
 
void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        printf( " ");
    for (i = 0; i < n; i++) // for print *
        printf("* ");
    printf("\n"); // for next line
 
    // Recursive calls
    printPartten(n - 1, k + 1);
}
 
int main()
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
    return 0;
}

Java

// Java program to print reverse triangular
// patterns using Recursive
class GFG{
static void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        System.out.print(" ");
    for (i = 0; i < n; i++) // for print *
        System.out.print("* ");
    System.out.print("\n"); // for next line
 
    // Recursive calls
    printPartten(n - 1, k + 1);
}
 
public static void main(String[] args)
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
}
}

Python3

# Python 3 program to print reverse
# triangular patterns using Recursive
 
def printPartten(n, k):
 
    if (n < 0): # Base condition
        return;
    for i in range(0, k): # it makes spaces
        print(" ", end = "")
    for i in range(0, n): # for print *
        print("*", end = " ")
    print("\n", end = "") # for next line
 
    # Recursive calls
    printPartten(n - 1, k + 1);
 
# Driver Code
n = 7;
 
# Call to printPartten function
printPartten(n, 0);
 
# This code is contributed
# by Akanksha Rai

C#

// C# program to print reverse triangular
// patterns using Recursive
using System;
 
class GFG
{
static void printPartten(int n, int k)
{
    if (n < 0) // Base condition
        return;
    int i;
    for (i = 0; i < k; i++) // it makes spaces
        Console.Write(" ");
    for (i = 0; i < n; i++) // for print *
        Console.Write("* ");
    Console.Write("\n"); // for next line
 
    // Recursive calls
    printPartten(n - 1, k + 1);
}
 
// Driver Code
public static void Main()
{
    int n = 7;
 
    // Call to printPartten function
    printPartten(n, 0);
}
}
 
// This code is contributed
// by PrinciRaj1992

PHP


Javascript


输出:
* * * * * * * 
 * * * * * * 
  * * * * * 
   * * * * 
    * * * 
     * * 
      *