我一直在尝试用整数做一个简单的除法。使用一系列减法,并尝试使用递归。试想一下,使用只能使用加法和减法的计算机。我已经创建了一个乘法和一个指数,但是我在除法方面遇到了最困难的时期。任何帮助或建议将大有帮助!
#include<stdio.h>
int DIV(int m, int n){
if(m == 0){
return 0;
}
else if(n == 0){
return -1;
}
else if( n == 1){
return m;
}
else if(m > 0 && n > 0)
return DIV(m, n-1) - m;
} //exit
到目前为止,这就是我的代码,只需要结束语句的帮助即可。另外,
int m
是分子,而n
是分母。我正在使用GNUC。 最佳答案
你要:
else if (m < n)
return 0;
else
return 1 + DIV (m-n, n);
但是,如果您希望此代码实际在资源有限的机器上运行,则应将其实现为while循环。也许(错误检查和负数处理被省略):
int div (int num, int den)
{
int ret = 0;
while (num > den)
{
num -= den;
ret++;
}
return ret;
}