请编写递归函数,显示直角三角形(左侧向下)。
函数原型
void DnLfTrg(int height, char symbol);
说明:参数 height 为直角三角形的高,symbol 为显示字符。函数将在屏幕上显示高度和底宽为 height 由字符 symbol 组成的直角三角形(左侧向下)。若 height ≤ 0,则不输出。
裁判程序
#include <stdio.h>
void Show(int number, char symbol);
void DnLfTrg(int height, char symbol);
int main()
{
int n;
char s;
scanf("%d %c", &n, &s);
DnLfTrg(n, s);
putchar('\n');
return 0;
}
void Show(int number, char symbol)
{
...(略)...
}
/* 你提交的代码将被嵌在这里 */
提示:需要利用前面作业中的 Show 函数。
输入样例1
-3 #
输出样例1
输入样例2
5 *
输出样例2
*****
****
***
**
*
要求:不使用循环语句。
关联习题:重复显示字符(递归版)。
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码如下:
void DnLfTrg(int height, char symbol)
{
if(height<=0)//终止条件
return 0;
else
{
Show(height,symbol);
printf("\n");//换行,防止所有输出在一行不能输出直角三角形
DnLfTrg(height-1, symbol);//每行*个数减一
}
}
题目中要求要使用Show函数
代码如下:
void Show(int number, char symbol)
{
if(number<=0)
return 0;
else
{
putchar(symbol);
Show(number-1,symbol);
}
}