Leetcode--50. Pow(x,y)

实现 pow(x, n) ,即计算 x 的 n 次幂函数。

示例 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
说明:

-100.0 < x < 100.0
n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。

方法一:暴力法,时间复杂度:O(n),通不过

class Solution {
    public double myPow(double x, int n) {
            double sum=1;
            int i;
            if(n>0)
            {
                for(i=1;i<=n;i++)
                {
                    sum*=x;
                }
            }
            else if(n<0)
            {
                n = -n;
                for(i=1;i<=n;i++)
                {
                    sum*=x;
                }
                sum=1/sum;
            }
            else
            {
                sum = 1;
            }
            return sum;
    }
}

方法二:二分法

例如:次方为偶数的话,1024 = 32*32,即2^10=2^5*2^5,依次类推,2^n=2^(n/2)*2^(n/2)

次方为奇数复杂一点,2048(2^11)=32*32*2,   2^n=2^(n/2)*2^(n/2)*2

提交的代码:

class Solution {
    public static double powRecursion(double x, int n) {
        if (n == 0) {
            return 1;
        }
        if ((n%2) == 0) { 
            return powRecursion(x * x, n / 2);
        } else { 
            return powRecursion(x * x, n / 2) * x;
        }
    }
     public static double myPow(double x, int n) {
            double sum=1;
            if(n==1)
            {
                return x;
            }
            if(n==-1)
            {
                return 1/x;
            }
            int i=0;
            if(n==0)
            {
                return 1;
            }
            else if(n<0)
            {
                n=-n;
                x = 1/x;
            }
            sum = powRecursion(x,n);
            return sum;
    }
}

完整的代码:

import java.util.Scanner;

public class Solution50 {
    public static double powRecursion(double x, int n) {
        if (n == 0) {
            return 1;
        }
        if ((n%2) == 0) { 
            return powRecursion(x * x, n / 2);
        } else { 
            return powRecursion(x * x, n / 2) * x;
        }
    }
     public static double myPow(double x, int n) {
            double sum=1;
            if(n==1)
            {
                return x;
            }
            if(n==-1)
            {
                return 1/x;
            }
            int i=0;
            if(n==0)
            {
                return 1;
            }
            else if(n<0)
            {
                n=-n;
                x = 1/x;
            }
            sum = powRecursion(x,n);
            return sum;
           }
     public static void main(String[] args)
     {
         double x;
         int n;
         Scanner sc = new Scanner(System.in);
         x = sc.nextDouble();
         n = sc.nextInt();
         System.out.println(myPow(x,n));
     }
}
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在失败中学习,MIT新研究显示,机器可以像婴儿一样学会理解人类目标

大数据文摘出品来源&#xff1a;MIT编译&#xff1a;周熙在Warneken和Tomasello关于人类社会智力的经典实验中&#xff0c;一个18月大蹒跚学步的幼儿看着一个男人抱着一堆书走向一个未开封的柜子。当男子到达柜子时&#xff0c;他笨拙地将书在柜门上撞了几下&#xff0c;然后发…

django http404 详解

【引子】 今天在看django的官方文档的时候看到get_object_or_404这个函数感觉比较奇怪。这个主要来自于它的功能&#xff0c;如果要查询的对象 存在那么就返回对象&#xff1b;如果对象不存在那么就要报404 Not Found &#xff1b;但是404 Not Found并不是它的返回值&#xff0…

这一年,科学高度不断刷新

来源&#xff1a;科技日报●存算一体架构在手写数字集上的识别准确率达到96.19%●截至12月14日21时&#xff0c;“天问一号”探测器已在轨飞行144天&#xff0c;飞行里程约3.6亿公里&#xff0c;距离地球超过1亿公里●嫦娥五号经历了11个阶段、23天的在轨工作&#xff0c;采集了…

python天天向上的力量三天打鱼两天晒网_017 示例3-天天向上的力量-Go语言中文社区...

一、"天天向上的力量"问题分析1.1 天天向上的力量基本问题&#xff1a;持续的价值一年365天&#xff0c;每天进步1%&#xff0c;累计进步多少呢&#xff1f;(1.01^{365})一年365天&#xff0c;每天退步1%&#xff0c;累计剩下多少呢&#xff1f;(0.99^{365})1.2 需求…

CNS三大刊2020年年度最佳论文全部出炉!脑科学一共4篇,我国学者入选1篇!

来源&#xff1a; brainnews编辑部、inature编辑部来源&#xff1a;生物谷旗下细胞公众号&#xff0c;药明康德团队旗下学术经纬公众号Cell ,Nature和Science 三大期刊2020年年度最佳论文全部公布&#xff0c;brainnews编辑部摘选其中跟脑科学相关的文章&#xff0c;跟大家一起…

Leetcode--191. 位1的个数

编写一个函数&#xff0c;输入是一个无符号整数&#xff0c;返回其二进制表达式中数字位数为 ‘1’ 的个数&#xff08;也被称为汉明重量&#xff09;。 示例 1&#xff1a; 输入&#xff1a;00000000000000000000000000001011 输出&#xff1a;3 解释&#xff1a;输入的二进制…

redis创建像mysql表结构_Redis数据结构列表实现

双向链表linkedlistRedis实现的是标准的双向链表。链表节点定义&#xff1a;链表定义&#xff1a;总结链表实现&#xff1a;1.每个节点有前后节点指针&#xff0c;且第一个节点的指针为NULL,最后一个节点的指针为NULL(无环)。2.对双链表进行封装&#xff0c;链表第一个节点和最…

神经符号系统、因果推理、跨学科交互,李飞飞、Judea Pearl等16名学者共同探讨AI未来...

来源&#xff1a;机器之心去年&#xff0c;纽约大学心理学和神经科学教授 Gary Marcus 和深度学习先驱、2018 年图灵奖得主 Yoshua Bengio 就 AI 技术的发展方向展开了一场现场辩论。今年&#xff0c;Gary Marcus 与 Montreal.AI 负责人 Vincent Boucher 举办了第二场辩论。这次…

Leetcode--190. 颠倒二进制位

颠倒给定的 32 位无符号整数的二进制位。 示例 1&#xff1a; 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596&#xff0c; 因此返回 964176192&…

python意外缩进引发逻辑错误_python – IndentationError:意外的缩进错误

我是Python的新手,我得到这个错误&#xff1a;Traceback (most recent call last):File "/usr/local/bin/scrapy", line 4, in execute()File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scrapy/cmdline.py&qu…

数字孪生城市应用【案例集】,附下载

来源&#xff1a;中国信通院等数字孪生城市经过三年的概念培育期&#xff0c;目前已经步入落地实施阶段&#xff0c;各地不同程度地推进数字孪生城市规划建设和行业应用创新实践。中国信息通信研究院联合数字孪生城市生态圈合作伙伴&#xff0c;在推出《数字孪生城市白皮书&…

六月中旬的心得

六月一眨眼的时间就来到了中旬&#xff0c;时间流逝之快让我们有些措手不及&#xff0c;炎热的天气更是加剧了小组里每个人的焦虑&#xff0c;也因此有了更大的动力与决心去完成自己的工作。 自己的工作是这个游戏的前端&#xff0c;需要完成的任务是做出来登录等一系列的用户界…

Leetcode--461. 汉明距离

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y&#xff0c;计算它们之间的汉明距离。 注意&#xff1a; 0 ≤ x, y < 231. 示例: 输入: x 1, y 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭…

安乐高机器人图纸_乐高机器人拼装图纸 | 手游网游页游攻略大全

发布时间&#xff1a;2015-12-26这是一个非常酷的乐高机器人,可以绘画的机器人.意大利工程师Daniele Benedettelli制造了这个乐高机器人,称其为"LEGONARDO".他的绘画动作是通过编程实现的,他将不会停止,直到你 ...标签&#xff1a;游戏资讯 八卦杂谈发布时间&#xf…

重磅!中国微纳机器人技术取得新突破,实现肿瘤的可视化精准治疗!

来源&#xff1a;机器人大讲堂科技的发展会带动相关领域共同进步&#xff0c;在科技进步越来越快的今天&#xff0c;一项技术的进步往往会同时打开好几个领域的技术难关&#xff0c;产生连锁反应&#xff0c;科技的边界也逐渐模糊&#xff0c;以新材料石墨烯的研究为例&#xf…

心得感悟

心得感悟 软件工程 新增内容 五月底到六月中旬&#xff0c;在这段时间内团队项目终于走上正轨&#xff0c;我们的项目是做一个实验室发布平台&#xff0c;但是如果单单做成一个门户网站是远远不够的&#xff0c;于是我们在传统的门户网站上增加了部分功能&#xff08;还没有实现…

Leetcode--231. 2的幂

给定一个整数&#xff0c;编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1 输出: true 解释: 20 1 示例 2: 输入: 16 输出: true 解释: 24 16 示例 3: 输入: 218 输出: false 菜鸡方法&#xff1a; class Solution { public boolean isPowerOfTwo(int n)…

java字符串数组排序_在Java中对字符串数组进行排序

允许用户使用字符串数组.他们可以向数组添加字符串,从数组中删除字符串,搜索数组中的字符串,最终他们将能够对数组进行排序.分类是搞砸我的原因.我尝试过几种不同的方法.第一种方法是将数组转换为ArrayList,并使用Collections对ArrayList进行排序,ArrayList将转换回静态类数组.…

什么是本体论?

来源&#xff1a;人机与认知实验室【世界有无本体还是互为本体&#xff1f;这是两个非常有意思的问题&#xff0c;从牛顿绝对主义角度应该有&#xff0c;从爱翁相对主义应该无&#xff0c;从未来的发展看&#xff0c;应该是“变”——也许就是“易”&#xff1f;&#xff01;主…

关于激活Windows10专业版2018长期服务版

之前重装了一次系统&#xff0c;偷懒用了小白一键重装&#xff0c;装好之后显示的是Windows10专业版2018长期服务版&#xff0c;当时也没想太多就放着用了。 然后 &#xff0c;这几天一直提示 “你的windows许可证即将过期” &#xff0c;就按照网上的一些教程来但是一直出错&…