写一个函数输出n行由*组成的等腰三角形
时间: 2024-03-21 07:40:06 浏览: 40
好的,这是一个简单的实现:
```python
def print_triangle(n):
for i in range(n):
print(' ' * (n-i-1) + '*' * (2*i+1))
print_triangle(5) # 输出5行等腰三角形
```
输出样例:
```
*
***
*****
*******
*********
```
函数`print_triangle(n)`中,`range(n)`表示循环n次,对于每一次循环,我们需要输出一行等腰三角形。
在第`i`次循环中,我们需要输出`n-i-1`个空格和`2*i+1`个星号,其中`n-i-1`表示当前行星号左边的空格数,`2*i+1`表示当前行星号的数量。
相关问题
C语言用递归函数输出由n行*组成的三角形
使用递归函数输出由n行*组成的三角形的C语言代码如下:
```c
#include <stdio.h>
void printTriangle(int n) {
if (n == 0) { // 递归出口,当n为0时结束递归
return;
}
printTriangle(n - 1); // 递归调用,先打印前n-1行的三角形
for (int i = 0; i < n; i++) {
printf("* "); // 每行打印n个*
}
printf("\n"); // 换行
}
int main() {
int n = 6; // 设置三角形行数
printTriangle(n);
return 0;
}
```
该代码首先通过递归调用`printTriangle(n - 1)`打印前n-1行的三角形,然后在第n行打印n个*。
用递归函数输出由n行*组成的三角形
要用递归函数输出由n行组成的三角形,可以定义一个递归函数yhsj,该函数接受两个参数n和m,表示行数和列数。在函数内部,首先判断特殊情况,如果列数为1或者行数为2且列数为2,或者行数等于列数,返回1。否则,递归调用yhsj函数计算上一行的前一列和当前列的值,然后将它们相加作为当前行当前列的值。最后,在主函数中调用putdata函数,传入行数n和列数m,并在putdata函数中使用两个嵌套的循环遍历每一行和每一列,调用yhsj函数打印出每个位置的值。