【发布时间】:2021-11-09 11:49:15
【问题描述】:
我已经编写了一个代码来解决一个问题。 这是问题的链接:https://brilliant.org/practice/bijections-overview/?p=2 我的意见是使用递归。我有 3 个元素加起来 5,我将单个元素从 0 迭代到 5 等等。
这是我的代码:
#include<bits/stdc++.h>
using namespace std;
int count_sum_5(int sum, int n)
{
if(n == 1) return 1;
for(int i = 0; i <= sum ; i++){
return 1 + count_sum_5(sum - i, n - 1);
}
}
int main()
{
int sum = 5;
int count_ele = 3;
cout << count_sum_5(sum, count_ele);
}
它的输出是3,我认为它只在i = 0 上运行,但在i = 1, 2, 3, 4, 5 上不运行。你能帮帮我吗?
【问题讨论】:
-
for循环内的return语句将在第一次迭代本身中从函数count_sum_5函数返回,进一步的循环迭代将不会继续。您必须在 for 循环之外编写 return 语句。
-
该链接将来可能会失效。问题描述应在问题中说明。
-
您的链接无效。请在问题中解释 - 目前还不清楚该功能应该完成什么。
标签: c++ recursion sum iteration