用递归函数输出由n行*组成的三角形
时间: 2023-12-31 07:05:32 浏览: 140
要用递归函数输出由n行组成的三角形,可以定义一个递归函数yhsj,该函数接受两个参数n和m,表示行数和列数。在函数内部,首先判断特殊情况,如果列数为1或者行数为2且列数为2,或者行数等于列数,返回1。否则,递归调用yhsj函数计算上一行的前一列和当前列的值,然后将它们相加作为当前行当前列的值。最后,在主函数中调用putdata函数,传入行数n和列数m,并在putdata函数中使用两个嵌套的循环遍历每一行和每一列,调用yhsj函数打印出每个位置的值。
相关问题
使用c语言分别设计非递归与逆归函数void print(int n),在屏幕上按以下规律输出由n行*组成的三角形(此处n为6),并编写main()函数进行测试。 *********** ********* ******* ***** *** *
在C语言中,你可以使用非递归和递归两种方法来设计一个函数`print_triangle(int n)`,以打印出指定行数的星号三角形。这里是非递归版本的实现:
```c
#include <stdio.h>
// 非递归函数
void print_triangle_non_recursive(int n) {
for (int i = 0; i < n; ++i) {
// 打印当前行的星号
for (int j = 0; j <= i; ++j) {
printf("* ");
}
printf("\n");
}
}
int main() {
int n = 6;
print_triangle_non_recursive(n);
return 0;
}
```
下面是递归版本的实现:
```c
void print_triangle_recursive(int n, int level = 1) {
if (level > n) {
return;
}
// 打印当前行的星号
for (int i = 0; i < level; ++i) {
printf("* ");
}
printf("\n");
// 递归调用自身,减少行数
print_triangle_recursive(n, level + 1);
}
int main() {
int n = 6;
print_triangle_recursive(n);
return 0;
}
```
这两个版本的`main()`函数都会输出一个6行的星号三角形。运行以上代码,即可看到相应的三角形输出。
打印出这样的三角形用递归函数* ** *** **** ***** **** *** ** *
以下是使用递归函数打印出指定形状的三角形的示例代码:
```python
def print_triangle(n):
if n > 0:
print_triangle(n-1)
print('*' * n)
print_triangle(5)
```
输出结果为:
```
*
**
***
****
*****
```
阅读全文