首页 > 解决方案 > 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;
}

'''

标签: c++recursionvisual-c++

解决方案


你没有调用递归,如下所示:

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.


推荐阅读