📜  程序打印梯形图案

📅  最后修改于: 2021-05-31 22:13:02             🧑  作者: Mango

给定’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等的更多准备工作,请参阅“完整面试准备课程”