#include
int mul(int,int);
void main()
{
int u,v,w;
scanf("%d%d",&u,&v);
if(v>=0) w=mul(u,v);
else w=-mul(u,-v);
printf("%d",w);
}
int mul(int a,int b)
{
if(a==0||b==0) return 0;
if(b==1) return 1;
return a+mul(a,b-1);
}
请问这个程序的用途和原理是什么?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2018-11-25 12:51关注
mul是递归,它的非递归等价版本是
int mul(int a,int b) { if(a==0||b==0) return 0; return a * (b - 1) + 1; }
如果问题得到解决,请点我回答左上角的采纳和向上的箭头
解决 无用评论 打赏 举报
悬赏问题
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
- ¥20 yolov5自定义Prune报错,如何解决?