这是我为递归地乘以数字而编写的代码
#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相关评论编辑。