请编写递归函数,重复显示字符。
时间: 2024-05-01 07:20:49 浏览: 41
下面是一个递归函数,可以重复显示指定字符:
```python
def repeat_char(char, count):
if count <= 0:
return
print(char, end='')
repeat_char(char, count - 1)
```
该函数接受两个参数:要重复显示的字符和显示的次数。在函数内部,它首先检查计数是否小于或等于零,如果是,则递归停止。否则,它将字符打印到屏幕上,然后将计数减1,并递归调用自己。
下面是一个使用示例:
```python
repeat_char('*', 5)
```
这将在屏幕上显示五个星号:`*****`
相关问题
重复显示字符(增强递归版)分数 10 全屏浏览题目 作者 李祥 单位 湖北经济学院 请编写递归函数,重复显示字符。 函数原型 void ShowHollow(int number, char symbol, int hollow); 说明:参数 number 为重复次数,symbol 为显示字符,hollow 为空心标记。若 hollow 为 0(假),函数将在屏幕上重复显示 number 个 symbol 字符。若 hollow 为 1(真),则输出的 number 个字符中,只有首字符和末字符为 symbol 字符,中间的字符均为空格(即空心)。若 number 小于等于 0,则不输出。 要求:不要使用循环语句。 提示:可增加自用的内部函数。 裁判程序 #include <stdio.h> void ShowHollow(int number, char symbol, int hollow); int main() { int n, h; char s; scanf("%d %c %d", &n, &s, &h); ShowHollow(n, s, h); putchar('\n'); return 0; }
好的,我理解了你的要求。以下是对应的C++代码:
```c++
#include<iostream>
using namespace std;
void ShowHollow(int number, char symbol, int hollow);
int main() {
int n, h;
char s;
cin >> n >> s >> h;
ShowHollow(n, s, h);
cout << endl;
return 0;
}
void ShowHollow(int number, char symbol, int hollow) {
if (number <= 0) {
return;
}
if (number == 1) {
cout << symbol;
return;
}
if (hollow) {
if (number == 2) {
cout << symbol << symbol;
return;
}
cout << symbol;
ShowHollow(number - 2, ' ', hollow);
cout << symbol;
}
else {
cout << symbol;
ShowHollow(number - 1, symbol, hollow);
}
}
```
函数ShowHollow中,首先判断number是否小于等于0,如果是,则直接返回。如果number等于1,则输出一个symbol字符,返回。如果hollow为真,则递归输出首字符、中间的空格、末字符;如果hollow为假,则递归输出number - 1个symbol字符。
C语言请编写递归函数,重复显示字符。 函数原型 void ShowHollow(int number, char symbol, int hollow); 说明:参数 number 为重复次数,symbol 为显示字符,hollow 为空心标记。若 hollow 为 0(假),函数将在屏幕上重复显示 number 个 symbol 字符。若 hollow 为 1(真),则输出的 number 个字符中,只有首字符和末字符为 symbol 字符,中间的字符均为空格(即空心)。若 number 小于等于 0,则不输出。 要求:不要使用循环语句。 提示:可增加自用的内部函数。 裁判程序 #include <stdio.h> void ShowHollow(int number, char symbol, int hollow); int main() { int n, h; char s; scanf("%d %c %d", &n, &s, &h); ShowHollow(n, s, h); putchar('\n'); return 0; }
以下是递归函数的实现:
```
#include <stdio.h>
// 声明内部递归函数
void ShowHollowInternal(int current, int number, char symbol, int hollow);
void ShowHollow(int number, char symbol, int hollow) {
// 如果 number 不大于 0,则不输出
if (number <= 0) {
return;
}
// 输出第一个字符
putchar(symbol);
// 如果 number 大于 1,则需要输出空心部分
if (number > 1) {
// 如果是空心,则输出空格
if (hollow) {
ShowHollowInternal(2, number - 1, ' ', 0);
}
// 如果不是空心,则输出相同的字符
else {
ShowHollowInternal(2, number - 1, symbol, 0);
}
}
// 如果 number 大于 1,则再输出最后一个字符
if (number > 1) {
putchar(symbol);
}
// 最后换行
putchar('\n');
}
void ShowHollowInternal(int current, int number, char symbol, int hollow) {
if (current > number) {
return;
}
// 如果是空心,则只有首尾字符为 symbol,其他为 ' '
if (hollow && current > 2 && current < number) {
putchar(' ');
}
else {
putchar(symbol);
}
ShowHollowInternal(current + 1, number, symbol, hollow);
}
```
这样,程序就可以根据输入的参数重复显示字符了。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)