需要注意的问题:
- int 的范围是
,如果-2147483648/-1结果会超出int 范围。[-2^31,2^31-1],也就是【-2147483648,2147483647】
- 除法,乘法和mod都不能使用,那可以使用加减,移位。
- 只需保留商即可
- 保证数据在int范围。
code:
#include<stdio.h>
using namespace std;
long main() {
//a是被除数,b是除数
long a, b;
long c=0;
scanf_s("%d%d", &a, &b);
if (b==0)
{
printf("您的输入不合法,请重新输入:\n");
return 0;
}
if (a == 0) {
c = 0;
}
if (b >0 && a >0 && a-b<0)
{
c = 0;
}
if (b > 0 && a < 0 && a + b>0)
{
c = 0;
}
if (b < 0 && a>0 && a + b < 0)
{
c = 0;
}
if (b < 0 && a < 0 && a - b > 0)
{
c = 0;
}
while (b>0&&a>0&&a-b>=0)
{
a = a - b;
c++;
}
while (b > 0 && a<0 && a+b<=0)
{
a = a+b;
c--;
}
while (b<0&&a>0&&a+b>=0)
{
a = a + b;
c--;
}
while (b < 0 && a<0 && a-b<=0)
{
a = a-b;
c++;
}
printf("%d", c);
return 0;
}
结果