剑指offer第三章刷题
2020-08-03 17:13
591 查看
前言:代码质量包括规范性(布局清晰,命名合理,手写能认出来),代码的完整性(功能测试,边界测试,负面测试)
文章目录
1.数值的整次方
题目描述
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
示例 1:
输入: 2.00000, 10
输出: 1024.00000
示例 2:
输入: 2.10000, 3
输出: 9.26100
示例 3:
输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25
思路
注意指数为负数的情况,且注意0的0次方是没有意义的,返回1或0都是可以的
优化的公式
当n为偶数时,a的n次方=a的n/2次方a的n/2次方
当n为奇数时,a的n次方=a的(n-1)/2次方a的(n-1)/2次方*a
代码
class Solution { public double myPow(double x, int n) { //底数为0直接返回 if(x == 0) return 0; long b = n; double res = 1.0; //指数小于0 if(b < 0) { x = 1 / x; b = -b; } while(b > 0) { //&是与运算 2的2进制 10 1的2进制01 10&01结果为0 3的2进制 11 11&01结果为1 //b&1==1的话它就是奇数,b&1==0为偶数 //若b为偶数,这个只执行一次即b最后为1的时候,把x的值赋给res if((b & 1) == 1) res *= x; x *= x; b >>= 1; } return res; } }
2.打印从1到最大的n位数
题目描述
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
示例 1:
输入: n = 1
输出: [1,2,3,4,5,6,7,8,9]
说明:
用返回一个整数列表来代替打印
n 为正整数
待更
相关文章推荐
- 剑指offer—第三章高质量的代码(按顺序打印从1到n位十进制数)
- 《剑指offer》第三章高质量的代码笔记
- 剑指offer_第三章高质量的代码
- 《剑指offer》笔记-第三章(2)
- 《剑指offer》第三章高质量的代码笔记
- 《剑指offer》笔记-第三章(3)
- 剑指offer—第三章高质量代码(o(1)时间删除链表节点)
- 《剑指offer》第三章 高质量的代码 总结
- 《剑指Offer》第三章
- 剑指offer—第三章高质量代码(数值的整数次方)
- 剑指offer—第三章高质量代码(合并两个排序链表)
- 剑指offer-第三章高质量代码(树的子结构)
- 剑指Offer第三章面试题(Java版)
- 阅读《剑指offer》第三章
- 《剑指offer》(第三章):高质量的代码
- 剑指offer-第三章高质量代码(反转链表)
- 【第三章】 DI 之 3.4 Bean的作用域 ——跟我学spring3
- 扑克牌顺子(剑指offer)
- 《一本书读懂TCP/IP》读后感——第三章TCP/IP网络应用
- 你必须要知道的架构知识~第三章 接口用来制定操作的统一性