实数的整数次幂

本总结是是个人为防止遗忘而作,不得转载和商用。

题目

         给定实数x和整数n,求xn

分析

         遇到这个题目你还会傻傻的一个个乘下去么?

         为什么不这样做:

                   假设求2的6次幂,那就:直接求出y =2(6/2=3),然后令y*y,即:

                            1,求出2的1次幂 = 2

                            2,求出2的2次幂 = 4

                            3,求出2的3次幂 = 8

                            4,直接计算出2的6次幂 = 8*8 = 64。

         这样一来就节省了一半时间。

         那进一步呢?

         假设求2的12次幂,你怎么求?

         先‘老老实实’的求出y =26,然后y*y?

         拜托,26怎么求的你忘了?

         所以记得用递归。

总结

         如何求xn

                   如果n是偶数,则计算x(n/2)*x(n/2)

                   如果n是奇数,则计算x(n/2)*x(n/2)*x;

                   然后不停的递归。

         PS:如果计算x-100,则先计算x100,然后做个除法:1/x100

         时间复杂度:O(NlogN)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值