求各位给个意见(c中的小问题)

林下溪源 2014-05-29 04:10:35
代码:
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int lcm(int a,int b)
{
return b/gcd(a,b)*a; //return a*b/gcd(a,b);
}

return b/gcd(a,b)*a; 和 return a*b/gcd(a,b); 这两种写法有不同么,为什么一个在oj中提交可以,另一个就wrong呢?
苦思不得其解,求各位大神指教
...全文
54 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
罗博士 2014-05-29
  • 打赏
  • 举报
回复
这是一个很初级的OJ陷阱,因为a*b有可能导致溢出。
赵4老师 2014-05-29
  • 打赏
  • 举报
回复
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门! 递归函数关注以下几个因素 ·退出条件 ·参数有哪些 ·返回值是什么 ·局部变量有哪些 ·全局变量有哪些 ·何时输出 ·会不会导致堆栈溢出

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧