我想知道是否可以使用1函数递归地打印相反的三角形(通过"*").
例如,对于给定的基数n = 4,它应该打印
*****
***
**
*
*
**
***
****
Run Code Online (Sandbox Code Playgroud)
我是初学者,但我知道如何编写1个递归函数
*****
***
**
*
Run Code Online (Sandbox Code Playgroud)
和一个
*
**
***
****
Run Code Online (Sandbox Code Playgroud)
但是有可能在1个函数中编写2个相对的三角形吗?可能是一个愚蠢的问题,它的答案是否定的 - 但我现在已经尝试了一个小时而且我无法做到.如果您能告诉我是否可能,我将非常感激.
编辑:我的代码为2个不同的功能:
#include <iostream>
using namespace std;
void printOppositeriangle(int n);
void printOppositeriangle2(int n);
void main()
{
int n = 5;
printOppositeriangle(n);
printOppositeriangle2(n);
}
void printOppositeriangle(int n)
{
if (n == 0)
return;
else
{
for (int i = 0; i < n; i++)
cout << "*";
cout << endl;
printOppositeriangle(n - 1);
}
}
void printOppositeriangle2(int n)
{
if (n == 0)
return;
else
printOppositeriangle2(n - 1);
for (int i = 0; i < n; i++)
cout << "*";
cout << endl;
}
Run Code Online (Sandbox Code Playgroud)
很简单,在打印出一行星号之前和之后,在中间进行递归调用.
void print(int n)
{
for (int i = 0; i < n; ++i)
cout << '*';
cout << '\n';
if (n > 1)
print(n - 1);
for (int i = 0; i < n; ++i)
cout << '*';
cout << '\n';
}
Run Code Online (Sandbox Code Playgroud)
未经测试的代码.
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |