自定义函数逻辑上有点问题,导致没有完全返回;若忽略这一点,那么代码是成功的,可以得出正确结果。不过函数写得啰嗦了点……求最小公倍数常用两种方法,一是求出最大公约数,再求最小公倍数(你用的就是此法);二是直接求。我把两种都写出来供你参考——
int f(int a,int b){//先求最大公约数再求最小公倍数法
int r,t=a*b;//用t记录a与b的积
while(r=a%b)//求a与b的最大公约数
a=b,b=r;
return t/b;//求出a与b的最小公倍数返回
}
///////////////////////////////////////////
int f(int a,int b){//直接求最小公倍数法
int r;
if(a>b)//总是让a<=b,这样速度快一些(不要这个if也可以,逻辑上没有任何问题)
r=a,a=b,b=r;
for(r=b;b%a!=0;b+=r);//直接求a与b的最小公倍数
return b;//求出a与b的最小公倍数返回
}
你写的代码有好多是没有用的,只浪费时间和空间,且把return m;放在else里使函数没有保证全部的返回路径。那个else 本身也是多余的。供参考。你的代码需要用“同时压下Ctrl和z键"来结束。
具体图片在哪里呢?看不到!
你要将问题说清楚点具体点,才能帮到你。
看样子都不像真心来求教的。代码复制成这样子。你认为有人会想看吗
没有看到你的问题在哪里。请详细叙述你的问题。