当前位置: 首页 > news >正文

家装设计公司排行榜郑州seo网站排名优化公司

家装设计公司排行榜,郑州seo网站排名优化公司,陕西省西安市事业单位招聘网,新泰网站设计目录 1. 题目描述2. 一般思路2.1 有问题的思路2.2 全面但不高效的思路2.3 面试小提示 3. 全面又高效的思路 1. 题目描述 题目:实现函数 double Power(double base,int exponent)#xff0c;求base 的exponent 次方。不得使用库函数#xff0c;同时不需要考虑大数问题 2. 一般… 目录 1. 题目描述2. 一般思路2.1 有问题的思路2.2 全面但不高效的思路2.3 面试小提示 3. 全面又高效的思路 1. 题目描述 题目:实现函数 double Power(double base,int exponent)求base 的exponent 次方。不得使用库函数同时不需要考虑大数问题 2. 一般思路 2.1 有问题的思路 由于不需要考虑大数问题这道题看起来很简单可能不少应聘者在看到题目30秒后就能写出如下的代码: #include stdio.hfloat Power(double base, int exponent) {double result 1.0;for (int i 0; i exponent; i){result * base;}return result; }int main() {double base 0;int exponent 0;scanf(%lf %d, base, exponent);printf(%lf, Power(base, exponent));return 0; }运行结果为 不过遗憾的是写得快不一定就能得到面试官的青睐因为面试官会问要是输入的指数(exponent)小于1即是零和负数的时候怎么办?上面的代码完全没有考虑只包括了指数是正数的情况。 2.2 全面但不高效的思路 我们知道当指数为负数的时候可以先对指数求绝对值然后算出次方的结果之后再取倒数。既然有求倒数我们很自然就要想到有没有可能对0求倒数如果对0求倒数怎么办?当底数(base)是零且指数是负数的时候如果不做特殊处理就会出现对0求倒数从而导致程序运行出错。怎么告诉函数的调用者出现了这种错误?前面提到我们可以采用3种方法返回值、全局代码和异常。面试的时候可以向面试官阐述每种方法的优缺点然后一起讨论决定选用哪种方式。最后需要指出的是由于0的0次方在数学上是没有意义的因此无论是输出0还是1都是可以接受的但这都需要和面试官说清楚表明我们已经考虑到这个边界值了。有了这些相对而言已经全面很多的考虑我们就可以把最初的代码修改如下: #define wucha 0.00000001 #include stdio.h #include math.hfloat Power(double base, int exponent) {if (abs(base) wucha){return 0.0;}//底数为0,底数指数都为0则结果默认为0if (exponent 0){return 1.0;}//指数为0double result 1.0;if (exponent 0){for (int i 0; i exponent; i){result * base;}return result;}//指数为正else if (exponent 0){for (int i 0; i exponent; i--){result * base;}return 1 / result;}//指数为负 }int main() {double base 0;int exponent 0;while (scanf(%lf %d, base, exponent) ! EOF){printf(%lf\n, Power(base, exponent));}return 0; }运行结果为 一个细节值得我们注意:在判断底数base是不是等于0时不能直接写base-0,这是因为在计算机内表示小数时(包括 foat和 double 型小数)都有误差。判断两个小数是否相等只能判断它们之差的绝对值是不是在一个很小的范围内。如果两个数相差很小就可以认为它们相等。 2.3 面试小提示 由于计算机表示小数(包括 foat和 double 型小数)都有误差我们不能直接用等号()判断两个小数是否相等。如果两个小数的差的绝对值很小比如小于 0.0000001就可以认为它们相等。 3. 全面又高效的思路 此时我们考虑得已经很周详了已经能够达到很多面试官的要求了。但是如果我们碰到的面试官是一个在效率上追求完美的人那么他有可能会提醒我们函数 Power还有更快的办法。如果输入的指数 exponent为32我们在函数 Power的循环中需要做 31次乘法。但我们可以换一种思路考虑:我们的目标是求出一个数字的 32次方如果我们已经知道了它的16次方,那么只要在 16 次方的基础上再平方一次就可以了。而16次方是8次方的平方。这样以此类推我们求32次方只需要做5次乘法:先求平方在平方的基础上求4次方在4次方的基础上求8次方在8次方的基础上求16次方最后在16次方的基础上求32次方。也就是说我们可以用如下公式求a的n次方 代码如下 #include stdio.hfloat Power2(double base, unsigned int exponent) {if (exponent 0){return 1;}if (exponent 1){return base;}double result Power2(base, exponent 1);result * result;if (exponent 1 1){result * result;}return result; }int main() {double base 0;unsigned int exponent 0;while (scanf(%lf %d, base, exponent) ! EOF){printf(%lf\n, Power2(base, exponent));}return 0; }但是美中不足的是这个代码只能求非负数的非负数幂 最后 恭喜你又遥遥领先了别人
http://www.hkea.cn/news/14487484/

相关文章:

  • 开普网站建设公司企业网站模板下载尽在
  • 外贸企业 访问国外网站深圳小程序定制
  • 网站开发属于什么岗位末年人免费观看网站
  • 3d建模怎么做网站旋转淘宝客网站容易做吗
  • 如何选择昆明网站建设怎么用ps做网站首页图片尺寸
  • 太原搭建网站的公司哪家好我要找人做网站的主页
  • 洛阳网站建设专业郑州网站建设
  • 做网站链接房产网加盟
  • 哪些网站做渣土车租恁百度网盘电脑版
  • 建设银行网站怎么查自己账号吗广告模板图片
  • 东莞 网站建设设计资源网站大推荐
  • 宜春做网站 黑酷seo企业管理软件销售好做吗
  • 自建网站软件网站建设制作品牌公司
  • 快递物流公司网站模板网站登录界面源码
  • 威海网站定制动漫网站开发
  • 公司做网站推广要注意什么网站界面诊断
  • 快速网站开发 带数据库深圳南山区网站建设
  • 上海网站开发设计seo兼职平台
  • jsp网站开发分享网站做非洲国际贸易网站
  • 如何让做网站网页页面布局
  • 学php做网站wordpress淘宝ued
  • wordpress 网站标题设置方法石油大学 网页设计与网站建设
  • 网站后台ftp在哪国际新闻界官网
  • 谷歌网站收录提交网站关键词seo费用
  • 计算机应用技术好就业吗优化方案系列丛书
  • 企业网站管理系统项目文档郑州即将迎来全面解封
  • 开发板停止维护后如何处理百度seo优化策略
  • 网站用哪个做重庆网站推广产品企业
  • 十里河网站建设公司千博企业网站管理系统完整版 2014
  • 自由体网站建设vr全景网络推广员要怎么做