减法操作 要实现 a-b 的基本思路就是不断地对 b 执行 n 次 ++ 操作,直到等于 a 为止,记录这个过程中的操作次数。
乘法操作 要实现 a*b 的基本思路就是对 a 执行 b 次相加就能得到 a*b 的值。
除法操作 要实现 a/b 的基本思路为:利用之前的乘法操作,对 b 不断乘以 1,2,3,4… n,直到相乘结果 b*n > a 时,就能得到商为 n-1。
2. 代码实现
#include<iostream>intadd(int a,int b){if(a <0&& b <0){std::cout <<"can not use ++"<< std::endl;return-1;}if(a >=0){for(int i =0; i < a; i++){b++;}return b;}else{for(int i =0; i < b; i++){a++;}return a;}}intsub(int a,int b){if(a < b){std::cout <<"can not use ++"<< std::endl;return-1;}int ret =0;for(; b < a; b++){ret++;}return ret;}intmulti(int a,int b){if(a <0|| b <0){std::cout <<"can not use ++"<< std::endl;return-1;}int ret =0;for(; b >0; b--){ret =add(ret, a);}return ret;}intdivi(int a,int b){if(a <=0|| b <=0){std::cout <<"can not use ++"<< std::endl;return-1;}int ret =1;int result =0;for(;;){result =multi(b, ret);if(result <= a){ret++;}else{break;}}return ret -1;}intmain(){std::cout <<add(2,-10)<< std::endl;std::cout <<sub(15,10)<< std::endl;std::cout <<multi(15,10)<< std::endl;std::cout <<divi(30,10)<< std::endl;return0;}