【问题标题】:Recursive function for digit sum in c++ [closed]c++中数字和的递归函数[关闭]
【发布时间】:2021-12-07 02:18:39
【问题描述】:

尝试在 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++ recursion visual-c++


【解决方案1】:

您没有调用此处所示的递归:

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

【讨论】:

  • “既然没有什么可评估的”是什么意思?
  • @Bathsheba 我的意思是 n 和 sum 没有变化
猜你喜欢
  • 2023-04-05
  • 2014-04-18
  • 2011-07-21
  • 2018-08-07
  • 1970-01-01
  • 2013-11-17
  • 2022-01-15
  • 2022-01-19
  • 2023-02-04
相关资源
最近更新 更多