递归打印给定的模式
给定一个正整数n 。使用递归方法打印倒三角形图案(如下面的示例中所述)。
例子:
Input : n = 5
Output :
* * * * *
* * * *
* * *
* *
*
Input : n = 7
Output :
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
方法 1(使用两个递归函数):一个递归函数用于获取行号,另一个递归函数用于打印该特定行的星号。
算法:
printPatternRowRecur(n)
if n < 1
return
print "* "
printPatternRowRecur(n-1)
printPatternRecur(n)
if n < 1
return
printPatternRowRecur(n)
print "\n"
printPatternRecur(n-1)
C++
// C++ implementation to print the given
// pattern recursively
#include
using namespace std;
// function to print the 'n-th' row of the
// pattern recursively
void printPatternRowRecur(int n)
{
// base condition
if (n < 1)
return;
// print the remaining stars of the n-th row
// recursively
cout << "* ";
printPatternRowRecur(n-1);
}
void printPatternRecur(int n)
{
// base condition
if (n < 1)
return;
// print the stars of the n-th row
printPatternRowRecur(n);
// move to next line
cout << endl;
// print stars of the remaining rows recursively
printPatternRecur(n-1);
}
// Driver program to test above
int main()
{
int n = 5;
printPatternRecur(n);
return 0;
}
Java
// java implementation to print the given
// pattern recursively
import java.io.*;
class GFG
{
// function to print the 'n-th' row
// of the pattern recursively
static void printPatternRowRecur(int n)
{
// base condition
if (n < 1)
return;
// print the remaining stars
// of the n-th row recursively
System.out.print( "* ");
printPatternRowRecur(n - 1);
}
static void printPatternRecur(int n)
{
// base condition
if (n < 1)
return;
// print the stars of the n-th row
printPatternRowRecur(n);
// move to next line
System.out.println ();
// print stars of the
// remaining rows recursively
printPatternRecur(n - 1);
}
// Driver program to test above
public static void main (String[] args)
{
int n = 5;
printPatternRecur(n);
}
}
//This code is contributed by vt_m
Python3
# Python 3 implementation
# to print the given
# pattern recursively
# function to print the
# 'n-th' row of the
# pattern recursively
def printPatternRowRecur(n):
# base condition
if (n < 1):
return
# print the remaining
# stars of the n-th row
# recursively
print("*", end = " ")
printPatternRowRecur(n - 1)
def printPatternRecur(n):
# base condition
if (n < 1):
return
# print the stars of
# the n-th row
printPatternRowRecur(n)
# move to next line
print("")
# print stars of the
# remaining rows recursively
printPatternRecur(n - 1)
# Driver Code
n = 5
printPatternRecur(n)
# This code is contributed
# by Smitha
C#
// C# implementation to print the given
// pattern recursively
using System;
class GFG
{
// function to print the 'n-th' row
// of the pattern recursively
static void printPatternRowRecur(int n)
{
// base condition
if (n < 1)
return;
// print the remaining stars
// of the n-th row recursively
Console.Write( "* ");
printPatternRowRecur(n - 1);
}
static void printPatternRecur(int n)
{
// base condition
if (n < 1)
return;
// print the stars of the n-th row
printPatternRowRecur(n);
// move to next line
Console.WriteLine();
// print stars of the
// remaining rows recursively
printPatternRecur(n - 1);
}
// Driver program to test above
public static void Main()
{
int n = 5;
printPatternRecur(n);
}
}
//This code is contributed by vt_m
PHP
Javascript
C++
// C++ implementation to print the given pattern recursively
#include
using namespace std;
// function to print the given pattern recursively
void printPatternRecur(int n, int i)
{
// base condition
if (n < 1)
return;
// to print the stars of a particular row
if (i <= n)
{
cout << "* ";
// recursively print rest of the stars
// of the row
printPatternRecur(n, i + 1);
}
else
{
// change line
cout << endl;
// print stars of the remaining rows recursively
printPatternRecur(n-1, 1);
}
}
// Driver program to test above
int main()
{
int n = 5;
printPatternRecur(n, 1);
return 0;
}
Java
// java implementation to
// print the given pattern recursively
import java.io.*;
class GFG {
// function to print the
// given pattern recursively
static void printPatternRecur(int n, int i)
{
// base condition
if (n < 1)
return;
// to print the stars of
// a particular row
if (i <= n)
{
System.out.print ( "* ");
// recursively print rest
// of the stars of the row
printPatternRecur(n, i + 1);
}
else
{
// change line
System.out.println( );
// print stars of the
// remaining rows recursively
printPatternRecur(n - 1, 1);
}
}
// Driver program
public static void main (String[] args)
{
int n = 5;
printPatternRecur(n, 1);
}
}
// This code is contributed by vt_m
Python3
# Python3 implementation to print the
# given pattern recursively
# function to print the given pattern
# recursively
def printPatternRecur(n, i):
# base condition
if (n < 1):
return
# to print the stars of a
# particular row
if (i <= n):
print("* ", end = "")
# recursively print rest of
# the stars of the row
printPatternRecur(n, i + 1)
else:
# change line
print("")
# print stars of the remaining
# rows recursively
printPatternRecur(n-1, 1)
# Driver program to test above
n = 5
printPatternRecur(n, 1)
# This code is contributed by Smitha
C#
// C# implementation to
// print the given pattern recursively
using System;
class GFG {
// function to print the
// given pattern recursively
static void printPatternRecur(int n, int i)
{
// base condition
if (n < 1)
return;
// to print the stars of
// a particular row
if (i <= n)
{
Console.Write ( "* ");
// recursively print rest
// of the stars of the row
printPatternRecur(n, i + 1);
}
else
{
// change line
Console.WriteLine( );
// print stars of the
// remaining rows recursively
printPatternRecur(n - 1, 1);
}
}
// Driver program
public static void Main ()
{
int n = 5;
printPatternRecur(n, 1);
}
}
// This code is contributed by vt_m
PHP
Javascript
输出:
* * * * *
* * * *
* * *
* *
*
方法2(使用单个递归函数):这种方法使用单个递归函数来打印整个图案。
算法:
printPatternRecur(n, i)
if n < 1
return
if i <= n
print "* "
printPatternRecur(n, i+1)
else
print "\n"
printPatternRecur(n-1, 1)
C++
// C++ implementation to print the given pattern recursively
#include
using namespace std;
// function to print the given pattern recursively
void printPatternRecur(int n, int i)
{
// base condition
if (n < 1)
return;
// to print the stars of a particular row
if (i <= n)
{
cout << "* ";
// recursively print rest of the stars
// of the row
printPatternRecur(n, i + 1);
}
else
{
// change line
cout << endl;
// print stars of the remaining rows recursively
printPatternRecur(n-1, 1);
}
}
// Driver program to test above
int main()
{
int n = 5;
printPatternRecur(n, 1);
return 0;
}
Java
// java implementation to
// print the given pattern recursively
import java.io.*;
class GFG {
// function to print the
// given pattern recursively
static void printPatternRecur(int n, int i)
{
// base condition
if (n < 1)
return;
// to print the stars of
// a particular row
if (i <= n)
{
System.out.print ( "* ");
// recursively print rest
// of the stars of the row
printPatternRecur(n, i + 1);
}
else
{
// change line
System.out.println( );
// print stars of the
// remaining rows recursively
printPatternRecur(n - 1, 1);
}
}
// Driver program
public static void main (String[] args)
{
int n = 5;
printPatternRecur(n, 1);
}
}
// This code is contributed by vt_m
Python3
# Python3 implementation to print the
# given pattern recursively
# function to print the given pattern
# recursively
def printPatternRecur(n, i):
# base condition
if (n < 1):
return
# to print the stars of a
# particular row
if (i <= n):
print("* ", end = "")
# recursively print rest of
# the stars of the row
printPatternRecur(n, i + 1)
else:
# change line
print("")
# print stars of the remaining
# rows recursively
printPatternRecur(n-1, 1)
# Driver program to test above
n = 5
printPatternRecur(n, 1)
# This code is contributed by Smitha
C#
// C# implementation to
// print the given pattern recursively
using System;
class GFG {
// function to print the
// given pattern recursively
static void printPatternRecur(int n, int i)
{
// base condition
if (n < 1)
return;
// to print the stars of
// a particular row
if (i <= n)
{
Console.Write ( "* ");
// recursively print rest
// of the stars of the row
printPatternRecur(n, i + 1);
}
else
{
// change line
Console.WriteLine( );
// print stars of the
// remaining rows recursively
printPatternRecur(n - 1, 1);
}
}
// Driver program
public static void Main ()
{
int n = 5;
printPatternRecur(n, 1);
}
}
// This code is contributed by vt_m
PHP
Javascript
输出:
* * * * *
* * * *
* * *
* *
*