编程实现两个正整数的除法
来源:互联网 发布:台服手游哪个软件下载 编辑:程序博客网 时间:2024/05/21 04:39
编程实现两个正整数的除法,当然不能用除法操作符。
// return x/y.
int div(const int x, const int y)
{
....
// return x/y.
int div(const int x, const int y)
{
....
}
根据题目,我们知道x/y的结果是一个整数,只是一个整数的话需要考虑的东西就比较少了。
当然如果是小数的话也是可以做的,我们可以借鉴利用两点确定一元二次函数根的方法,这个大家可自行思考,下面贴上这题的代码。
利用相减的方法,这个方法有一个非常不好的地方个人觉得,比如x=10000000,y=1;这样的话就要循环10000000,效率不好。
代码如有错误,或者还有更好的方法,还请各位道友能够批评指正。
#include<stdio.h>#include<math.h>/*int div( const int x, const int y){//如果x的绝对值小于y直接返回0if( abs(x)<abs(y))return 0;int result=0;if( x<0 ){if( y<0 ){for(; x-result*y<=0 ; result++);}else{for(; x-result*y<=0 ; result--);}}else{if( y<0 ){for(; x-result*y>=0; result--);}else{for(; x-result*y>=0; result++);}}if( result<0)return result+1;return result-1;}*///用这个方法的话,直接用x,y进行比较计算,看起来会比较麻烦//下面我们可以通过 x,y的绝对值来计算,这样就只需要求一次了,看起来很简洁int div( const int x, const int y){int x_p=abs(x);int y_p=abs(y);if(x_p<y_p)return 0;int result=1;for(; x_p-y_p*result>=0; result++);//为什么要 ‘--’呢? 这是因为for的判断条件result--;//直接这样判断有风险,万一 x*y 溢出了就不好玩了if(x*y<0)return -result;return result;}int main(){printf("%d \n",div(-2,-1));printf("%d \n",div(-2,41));printf("%d \n",div( 4,6));printf("%d \n",div(-9,-6));printf("%d \n",div(2,-1));getchar(); return 0;}
0 0
- 编程实现两个正整数的除法
- 编程实现两个正整数的除法
- 9、编程实现两个正整数的除法
- 编程实现两个正整数的除法
- 编程实现两个正整数的除法
- 编程实现两个正整数的除法
- 编程实现两个正整数的除法
- 编程实现两个正整数的除法
- 微软面试题:编程实现两个正整数的除法
- 不用 "%" && "/" 编程实现两个正整数的除法,取余数
- [每日练习]编程实现两个正整数的除法
- 结构之法 算法之道 面试题 9、编程实现两个正整数的除法 编程实现两个正整数的除法,当然不能用除法操作符。
- 编程实现两个正整数的除法,当然不能用除法操作符
- 编程实现两个正整数的除法,当然不能用除法操作符
- 编程实现两个正整数的除法,当然不能用除法操作符。
- 编程实现两个正整数的除法,当然不能用除法操作符
- 微软面试题:编程实现两个正整数的除法,当然不能用除法操作符。
- java-编程实现两个正整数的除法,当然不能用除法操作符
- HDU 1286 找新朋友 素数筛选法求公约数
- JDK TreeMap 红黑树学习
- slf4j学习小结
- Windows系统服务的编写。
- 单例模式
- 编程实现两个正整数的除法
- 十六周周赛总结
- bzoj 3528 [ZJOI2014] 星系调查 题解
- STM32学习笔记 — 之GPIO端口篇
- Swift控制语句
- OCP 1Z0 052 161
- 学生信息管理系统(2)——增、删、改、查
- raspberry 连接yeelink,并通过串口输出
- ti dsp(tms320VC5502)+isp1581 usb2.0高速数据采集方案(1)