C程序 打印倒置金字塔
在这里,我们将看到如何用C语言程序打印一个倒置的金字塔。下面是一些例子。
输入: 8
输出:
* * * * * * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
输入: 5
输出:
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
方法 1:
该模式将被分为三个部分。
1.将使用一个for循环来打印空白处
2.将使用一个for循环来打印左侧的三角形
3.一个for循环将被用来打印三角形的其余部分,使其成为准确的模式
算法:
1.初始化变量i、j和空格,分别代表行、列和空白处。
2.这里的行数是8,用户可以采取任何数字。
3.初始化一个for循环,它将作为打印图案的主循环,并驱动里面的其他循环。
4.初始化一个for循环,它将打印主循环内的空白处。
5.现在,为了打印星形图案,我们将首先打印半个金字塔,如下图所示。要做到这一点,我们将初始化一个for循环,其条件为2 * i – 1 ,因为星星的数量是奇数。
6.在它之后,我们将使用另一个for循环来打印图案的其余部分。
下面是打印一个倒金字塔图案的C语言程序。
// C program to print
// inverted pyramid
// pattern
#include <stdio.h>
// Driver code
int main()
{
int rows = 8, i, j, space;
for (i = rows; i >= 1; --i)
{
// Loop to print the blank space
for (space = 0;
space < rows - i; ++space)
printf(" ");
// Loop to print the half of
// the star triangle
for (j = i; j <= 2 * i - 1; ++j)
printf("* ");
// Loop to print the rest of
// the star triangle
for (j = 0; j < i - 1; ++j)
printf("* ");
printf("\n");
}
return 0;
}
输出
* * * * * * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
时间复杂度: O(n 2 )
辅助空间: O(1)
方法 2:
将使用两个for循环。
1.将使用一个for循环来打印空白处
2.将使用一个for循环来打印星星
算法:
1.初始化变量i、j和行。
2.这里的行数是8,用户可以取任何数字。
3.初始化一个for循环,它将作为打印图案的主循环,并驱动里面的其他循环。
4.初始化一个for循环,该循环将打印主循环内的空白处,并从1运行到i。
5.运行一个从1到行的for循环 * 2-1),来打印星星。
6.在新行字符的帮助下移动到下一行。
下面是打印一个倒金字塔图案的C语言程序。
// C program to print
// inverted pyramid
// pattern
#include <stdio.h>
// Driver code
int main()
{
int i, j, rows = 8;
for (i = 1; i <= rows; i++)
{
// Loop to print the blank spaces
for (j = 1; j < i; j++)
{
printf(" ");
}
// Loop to print the stars
for (j = 1;
j <= (rows * 2 - (2 * i - 1));
j++)
{
printf("*");
}
// Move to the next line to
// complete the pattern
printf("\n");
}
return 0;
}
输出
***************
*************
***********
*********
*******
*****
***
*
时间复杂度: O(n 2 )
辅助空间: O(1)