打印三角形图案的递归程序
我们在上一篇文章中讨论了迭代图案打印。
例子:
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
输出:
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*