我关于递归乘以数字的代码没有给出任何输出,你能帮我纠正一下吗



这是我为递归地乘以数字而编写的代码

#include<iostream>        
using namespace std;        
int multi(int n){        

int smallanswer=multi(n/10);        
int lastdigit=n%10;        
if(n==0) return 1;        
else return smallanswer*lastdigit;       
}        
int main(){        
cout<<multi(1234);        
}

注意递归调用:不要忘记"停止递归";步

以下代码将起作用:

#include<iostream>

int multi_impl(int n)
{
if (n == 0)
{
return 1;
}
int smallanswer = multi_impl(n / 10);
int lastdigit = n % 10;
return smallanswer * lastdigit;
}
int multi(int n)
{
if (n == 0)
{
return 0;
}
return multi_impl(n);
}
int main()
{
std::cout << multi(1234) << std::endl;
std::cout << multi(0) << std::endl;
}

根据@463035818_is_not_a_number相关评论编辑

相关内容

最新更新