博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pow(x,n) 为什么错这么多次
阅读量:4106 次
发布时间:2019-05-25

本文共 807 字,大约阅读时间需要 2 分钟。

题目:

解答:

题目很简单,看看我为什么错这么多次吧。

https://oj.leetcode.com/problems/powx-n/submissions/

第一次:

Last executed input:0.00001, 2147483647

超时,没有考虑结果近似等于0的情况,添加代码:

if (sum < 1e-16)	 return 0;
第二次:

Last executed input:1.00000, 2147483647

好吧,没有考虑x == 1 的情况。添加代码:

if (x == 1)	 return 1;
第三次:

Input:-13.62608, 3

Output:0.00000

Expected:-2529.95504

直接出错了,竟然忘了考虑

出错的地方在第一次添加的代码中,应该取sum的绝对值接近于0,而不是仅仅判断小于一个极小值

继续更改

if (abs(sum) < 1e-16)	 return 0;
第四次:

Last executed input:-1.00000, 2147483647

超时,判断x == 1时返回,同时应该判断 x == -1

添加代码:

if (abs(x) == 1)	return 1;
第五次:

Input: -1.00000, 2147483647
Output: 1.00000
Expected: -1.00000
错在直接判断绝对值是1,就返回了-1

更改代码:

if (x == 1)			 return x;		 if (x == -1)		 {			 if (n % 2 == 0)				 return 1;			 else				 return -1;		 }
第六次 

通过

一个简单的题,竟然提交了这么多次,犯了很多简单的错误,引以为戒。

写代码的时候,没有思考,改一个bug,提交一次,造成了这么多的错误。

转载地址:http://hutsi.baihongyu.com/

你可能感兴趣的文章
二维数组和指针的一些感悟
查看>>
二维数组和二级指针
查看>>
VC让对话框显示就最大化
查看>>
Unicode和多字节字符集 (MBCS) 杂谈
查看>>
MFC中char*,string和CString之间的转换
查看>>
COMMTIMEOUTS详解
查看>>
网络通信时字节序转换原理与网络字节序、大端和小端模式
查看>>
用PostMessage或SendMessage发送结构体指针
查看>>
[VC]SendMessage和PostMessage发送消息(不同进程传递字符串)
查看>>
使用J-Link ARM烧录FLASH
查看>>
驻波比
查看>>
解FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH
查看>>
FPGA的基础知识
查看>>
银联POS规范总结
查看>>
NFC无线功能
查看>>
APN
查看>>
MDK中One ELF Section per Function选项功能探究
查看>>
基于PBOC的电子钱包消费交易过程
查看>>
uC/OS-II源码分析(总体思路 三)
查看>>
uC/OS-II源码分析(总体思路 二)
查看>>