在只容许使用++操作符的情况下,请完成下面代码,实现减法、乘法和除法。注意:假设操作数全为正整数,并且可以不考虑性能,不能使用–,*,/等操作符。
a). 乘法: int multi(int opl,int op2){//op1*op2}
b). 减法: intsub(int op1,int op2){//op1-op2}
c). 除法: int div(int op1,int op2){//op1/op2}
中心思想:
利用for循环来实现不能用其它操作符的短板
int multi(int opl,int op2)//op1*op2
{
int mu = op1 ;
for ( int i = 1 ; i < op2 ; i ++)//控制外层循环个数,也可以和op1交换位置,但是如果换了就要把mu赋值也换了,它小于op2而不是等于是因为前面mu已经被赋值一次
for ( int j = 1 ; j <= op1 ; j ++)
mu ++;
return mu ;
}
int sub(int op1,int op2)//op1-op2
{
int su = - op2 ;
for ( int i = 0 ; i < op1 ; i ++)
su ++;
return su ;
}
int div(int op1,int op2)//op1/op2
{
int di = 1;
int temp = op2 ;
while ( op1 != op2 )//这里如果假设op2是小一点的数会更好的理解。
{
for ( int i = 0 ; i < temp ; i ++)
op2 ++;//利用自身循环和加一的特点,如果自己转完加到了temp一次,就表明满足一次,di就++一次,每次加一,然后判断op1是否等于op2,如果不等于,继续循环,如果等于,退出返回di。
di ++;
}
return di ;
}
时间: 2024-10-12 08:53:45