C++ 如何使用递归解决这个问题?
我的函数必须能够打印数字1+1+1的总和。。。。要获得N,我只能输入N。例如,sumRecursion(6):1+1+1+1+1=6。 这就是我所拥有的C++ 如何使用递归解决这个问题?,c++,recursion,C++,Recursion,我的函数必须能够打印数字1+1+1的总和。。。。要获得N,我只能输入N。例如,sumRecursion(6):1+1+1+1+1=6。 这就是我所拥有的 int sumaRecursiva(int y) { int x=0; if (x == y){ return y; } else { x += 1; cout << x << "+" <
int sumaRecursiva(int y) {
int x=0;
if (x == y){
return y;
}
else {
x += 1;
cout << x << "+" <<endl;
sumaRecursiva(y-1);
}
}
int sumaRecursiva(int y){
int x=0;
如果(x==y){
返回y;
}
否则{
x+=1;
cout递归函数应该返回一个值。
传递给递归的值通常用于测试转义条件(通常不作为结果的一部分使用)
您可能需要另一个函数来处理打印中所需的+
字符少于所需的1
s这一事实
void printSum(int y) {
if (y == 0) return;
cout << 1;
printPlusRecursive(y - 1);
}
void printPlusRecursive(int y) {
if (y == 0) return;
cout << '+' << 1;
printPlusRecursive(y - 1);
}
void打印和(整数y){
如果(y==0)返回;
cout如果您希望输出正好是1+1+1+1+1+1=6
,那么您需要一个辅助函数sumaRecursivaHelper来打印1+
,外部函数来打印=n
,我相信其他答案都不包括
#include <iostream>
using namespace std;
void sumaRecursivaHelper(int x) {
if (x == 0) {
cout << 1;
}
else {
cout << "1+";
sumaRecursivaHelper(x - 1);
}
}
void sumaRecursiva(int x) {
if (x == 0) {
cout << 0;
}
else {
sumaRecursivaHelper(x);
}
cout << "=" << x;
}
int main()
{
sumaRecursiva(6);
return 0;
}
#包括
使用名称空间std;
无效sumaRecursivaHelper(整数x){
如果(x==0){
难道你不想打印序列,还是只想返回和?如果你只想得到和,就不需要递归。
void printSum(int y, bool firstCall = true) {
if (y == 0) return;
if (firstCall) cout << 1;
else cout << '+' << 1;
printSum(y - 1, false);
}
#include <iostream>
using namespace std;
void sumaRecursivaHelper(int x) {
if (x == 0) {
cout << 1;
}
else {
cout << "1+";
sumaRecursivaHelper(x - 1);
}
}
void sumaRecursiva(int x) {
if (x == 0) {
cout << 0;
}
else {
sumaRecursivaHelper(x);
}
cout << "=" << x;
}
int main()
{
sumaRecursiva(6);
return 0;
}