带递归的节号
Section Numbers with Recursion
本文关键字:递归 更新时间:2023-10-16
我在作业上遇到了麻烦,而且可能非常熟悉(链接)。这是标题为"节号"的问题 2。
基本上,这是一个递归问题,它打印出一个字符串以及由级别定义的节号。如果有一个级别,它将打印 string1。到字符串9。如果有两个,则字符串 1.1。到字符串9.9.等。我遇到的问题是最后一个细节,程序会自行打印出原始字符串。
我的代码:
#include <iostream> // Provides cin, cout
#include <cstdlib> // Provides EXIT_SUCCESS
#include <sstream>
#include <string>
using namespace std;
void numbers(ostream& outs, const string& prefix, unsigned int levels);
int main()
{
numbers(cout, "THERBLIG", 2);
}
void numbers(ostream& outs, const string& prefix, unsigned int levels)
{
if(levels == 0)
{
cout << prefix << endl;
}
else
{
for(int i = 1; i <= 9; i++)
{
string s = (prefix + char('0' + i));
s += '.';
numbers(outs, s, levels - 1);
}
}
}
我知道前缀通过递归被覆盖,所以不是打印原始字符串,而是 string1.1。我不知道的是,如何保持原件完好无损,以便最后可以打印出来。(我知道这里已经有一篇帖子提出了完全相同的问题,但我已经尝试了这两种解决方案,但我无法获得任何地方。
任何帮助都非常感谢!
提示:使用静态局部变量,或使用递归追加。
如果您曾经坚持递归,请尝试使用递归来计算阶乘(经典示例)。大多数用途都源于此。
另外,请不要在这里发布您的作业。
相关文章:
- 通过递归进行因子分解
- 递归函数计算序列中的平方和(并输出过程)
- 使用递归的数组的最小值.这是怎么回事
- 递归列出所有目录中的C++与Python与Ruby的性能
- 递归计数给定目录的文件和所有目录
- 如何在BST的这个简单递归实现中消除警告
- C++:正在检查LinkedList中的回文-递归方法-错误
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 递归无序映射
- TSP递归解的迭代形式
- 如何在Elixir中调用递归函数并行
- 返回递归调用和仅递归调用的区别
- 数组元素打印的递归方法
- 使用递归时获取变量的奇怪值
- 如何在C++中递归地按相反顺序打印集合
- 到连接组件算法的问题(递归)
- 如何使用递归打印修改后的星号三角形图案
- 使用递归模板动态分配的多维数组
- 递归函数有效,但无法记忆
- 包含模板文件的递归会导致编译失败