c++ - c++中数字和的递归函数
问题描述
尝试在 c++ 中为数字和编写递归函数;最终得到了最后一位数字。任何人都可以建议修复..'''
#include<iostream>
using namespace std;
int dsum (int n, int sum)
{
if(n>0)
{
sum = sum + (n%10);
n = n/10;
return(n ,sum);
}
else return sum;
}
int main()
{
int i = 345;
int s = dsum (i,0);
cout<<"Sum is "<<s;
return 0;
}
'''
解决方案
你没有调用递归,如下所示:
int dsum (int n, int sum)
{
if(n>0)
{
sum = sum + (n%10);
n = n/10;
return(n ,sum); // <-- this line
}
else return sum;
}
注意你return(n ,sum);
而不是return dsum(n ,sum);
. return(n ,sum);
拳头计算左操作数:n
然后计算右操作数:sum
。由于没有要评估的内容,它将返回正确操作数的结果,即sum
.
推荐阅读
- python - 有没有办法在 Discord.py 中“隐藏”命令的参数
- javascript - 在控制台中出现此错误列表中的每个孩子都应该有一个唯一的“关键”道具
- python - 如何定义带参数的变量?
- node.js - 如何在环回中切换数据源
- java - 在上下文路径部署应用程序失败
- database - 如何生成一个表格,其中包含一个汇总表,指示分为不同年份的两个时期的两个指标的平均值?
- r - 通过乘以常数增加回归中(控制)变量的效果
- git - 如何解决与受保护分支的合并冲突?
- c - 函数调用之外的指针取消引用不会编译,但内部可以
- string - tk.messagebox.showerror() 出现错误情况