给定’num’表示行数。任务是在num行中打印梯形图案。
例子:
Input : 4
Output :
1*2*3*4*17*18*19*20
5*6*7*14*15*16
8*9*12*13
10*11
Input : 2
Output :
1*2*5*6
3*4
算法 :
第1步。读取表示行数的num。
第2步,我们将模式分为LHS部分和RHS部分两半。
例如:当num = 2时
LHS –
1 * 2 *
3 *
RHS –
5 * 6
4
第3步,将LHS和RHS结合起来,我们得到了完整的模式。
C++
// CPP program to print Trapezium Pattern
#include
using namespace std;
int main()
{
int num = 3;
int space;
int i, j, lterm, rterm;
// The terms on the LHS of the pattern
lterm = 1;
// The terms on the RHS of the pattern
rterm = num * num + 1;
for (i = num; i > 0; i--) {
// To print number of spaces
for (space = num; space > i; space--)
cout << " ";
for (j = 1; j <= i; j++) {
cout << lterm;
cout << "*";
lterm++;
}
for (j = 1; j <= i; j++) {
cout << rterm;
if (j < i)
printf("*");
rterm++;
}
// To get the next term on RHS of the Pattern
rterm = rterm - (i - 1) * 2 - 1;
cout << endl;
}
}
Java
// Java program to print Trapezium Pattern
public class HelloWorld {
public void trapeziumPattern(int num)
{
int firsthalf = 1;
int secondhalf = (num * num) + 1;
int numOfSpaces = 0;
// numOfLines is the line number
for (int numOfLines = num; numOfLines >= 1; numOfLines--) {
// Prints the spaces for each line
for (int numOfSpacesCounter = numOfSpaces;
numOfSpacesCounter >= 1; numOfSpacesCounter--) {
System.out.print(" ");
}
// Prints the first half of the trapezium
for (int firstHalfCounter = 1;
firstHalfCounter <= numOfLines; firstHalfCounter++) {
// If it is the last number for a line then we don't print '*'
if (firstHalfCounter == numOfLines)
System.out.print((firsthalf++));
else
System.out.print((firsthalf++) + "*");
}
// Prints the second half of the trapezium
for (int secondHalfCounter = 1;
secondHalfCounter <= numOfLines; secondHalfCounter++) {
System.out.print("*" + (secondhalf++));
}
System.out.println();
// Calculates the number of Spaces for the next line
numOfSpaces += 2;
// Calculates the first number of the
// second half for the next iteration/line
secondhalf = (secondhalf - 1) - ((numOfLines - 1) * 2);
}
}
}
Python 3
# Python 3 program to print
# Trapezium Pattern
if __name__ == "__main__":
num = 3
# The terms on the LHS
# of the pattern
lterm = 1
# The terms on the RHS
# of the pattern
rterm = num * num + 1
for i in range(num, -1, -1):
# To print number of spaces
for space in range(num, i-1, -1):
print(" ", end ="")
for j in range(1, i + 1):
print(str(lterm)+"*", end ="")
lterm += 1
for j in range(1, i + 1):
print(rterm, end ="")
if j < i:
print("*", end ="")
rterm += 1
# To get the next term on RHS of the Pattern
rterm = rterm - (i - 1) * 2 - 1
print()
# This code is contributed by ChitraNayal
C#
// C# program to print Trapezium Pattern
using System;
public class HelloWorld {
public static void Main(String[] args)
{
// Scanner scn = new Scanner(System.in);
int num = 3;
int space;
// System.out.println("Enter number of lines : ");
// num = scn.nextInt();
int i, j, lterm, rterm;
lterm = 1; // The terms on the LHS of the pattern
// The terms on the RHS of the pattern
rterm = num * num + 1;
for (i = num; i > 0; i--) {
// To print number of spaces
for (space = num; space > i; space--)
Console.Write(" ");
for (j = 1; j <= i; j++) {
Console.Write(lterm);
Console.Write("*");
lterm++;
}
for (j = 1; j <= i; j++) {
Console.Write(rterm);
if (j < i)
Console.Write("*");
rterm++;
}
// To get the next term on RHS of the Pattern
rterm = rterm - (i - 1) * 2 - 1;
Console.WriteLine();
}
}
}
// This code is contributed by ankita_saini
PHP
0; $i--)
{
// To print number of spaces
for ($space = $num;
$space > $i; $space--)
echo " ";
for ($j = 1; $j <= $i; $j++)
{
echo $lterm;
echo "*";
$lterm++;
}
for ($j = 1; $j <= $i; $j++)
{
echo $rterm;
if ($j < $i)
echo "*";
$rterm++;
}
// To get the next term
// on RHS of the Pattern
$rterm = $rterm - ($i - 1) * 2 - 1;
echo "\n";
}
// This code is contributed
// by Akanksha Rai(Abby_akku)
?>
Javascript
输出:
Enter number of lines : 3
1*2*3*10*11*12
4*5*8*9
6*7
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。