Pow(x, n) 指数 @LeetCode

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx 立即下载

用第二种方法!

package Level3;

/**
 * Pow(x, n) 
 * Implement pow(x, n). 
 *
 */
public class S50 {

	public static void main(String[] args) {
		System.out.println(pow(2, -2));
	}

	public static double pow(double x, int n) {
		if(n < 0){		// 对负数的处理
			return 1.0 / rec(x, n);
		}
		return rec(x, n);
    }
	
	// 二分法
	public static double rec(double x, int n){
		if(n == 0){
			return 1;
		}
		if(n == 1){
			return x;
		}
		
		double tmp = rec(x, n/2);
//		if(n%2 == 0){		// 偶数情况
		if((n&1) == 0){		// 偶数情况
			return tmp * tmp;
		}else{				// 奇数情况
			return tmp * tmp * x;
		}
	}
	
}


Second try:

为了正确计算x的n次幂,还需要考虑到以下一些情况:

1) x取值为0时,0的正数次幂是1,而负数次幂是没有意义的;判断x是否等于0不能直接用“==”。

2) 对于n取值INT_MIN时,-n并不是INT_MAX,这时需要格外小心。

3) 尽量使用移位运算来代替除法运算,加快算法执行的速度。

http://blog.youkuaiyun.com/fengbingyang/article/details/12236121


public static double pow(double x, int n) {
        if(n == 0){
            return 1;
        }
        if(n == 1){
            return x;
        }
        if(n < 0){
            if(n == Integer.MIN_VALUE){
                return 1.0/(pow(x,Integer.MAX_VALUE)*x);
            }else{
                return 1.0/pow(x,-n);
            }
        }
        double half = pow(x,n/2);
        double ret = half*half;
        if(n%2==1){
            ret*=x;
        }
        return ret;
    }



public class Solution {
    public double pow(double x, int n) {
        if(n == 0) {
            return 1;
        }
        boolean neg = false;
        if(n < 0) {
            neg = true;
            n = -n;
        }
        double half = pow(x, n/2);
        double ret = 0;
        if((n & 1) == 0) {
            ret = half * half;
        } else {
            ret = half * half * x;
        }
        
        if(neg) {
            ret = 1.0 / ret;
        }
        return ret;
    }
}




U盘文件变exe?3步教你用火绒+批处理脚本恢复隐藏文档(附注册表修复) 本文详细解析了U盘文件被病毒隐藏并伪装成exe文件的原理,并提供了三步解决方案:首先使用火绒安全软件进行全盘查杀清除病毒;其次通过批处理脚本批量恢复被隐藏的文件属性;最后修复被篡改的注册表设置,彻底解决文件无法显示的问题,帮助用户安全找回数据并加固系统防护。 阅读详情

相关推荐

从 Pandas 到 Polars 十八:数据科学 2025,对未来几年内数据科学领域发展的预测或展望

Rust 在数据科学家中的普及将受到 Polars 的推动,用户会发现从使用 Python 切换到 Rust API 的门槛相对较低——比从 Pandas 切换到 C 的门槛要低得多!在数据科学蓬勃发展的十年里,我所在领域的日常工作主要由像 Python 这样的动态语言或像 R 和 Julia 这样使用即时编译的语言主导。尽管这两个库的功能有很多重叠,但有些人会想要一个像 DuckDB 这样的工具,它拥有更多关系型数据库的陷阱,而有些人则不会。然而,一位受访者正确地指出,基于GPU的库(如cuDF)更快。

sosogod的博客 2466

C语言标准库函数介绍(pow---指数)

对C语言标准库函数的一些介绍

wuweixiaoyue的博客 3390

UG476 GT Transceivers文档翻译和自身理解

对UG476 Xilinx官方文档进行翻译的基础上加上自己的理解

weixin_45143788的博客 4594

c语言指数pow,C语言中的指数函数pow()问题

最近在学习C语言.写了一点代码.感觉程序代码都是对的,编绎也通过了,然而结果却总不是正确的.找了老半天,忽然感觉pow()这个函数有点怪.是数学库里的一个函数.前面没加#include 把它加上去了.结果就OK了.然后我就很奇怪1.为什么没加#include 也能编绎通过?2.没加#include 中为什么使用pow()也能得出一个值?于是,我实验一下.实验一:main(){double z;z=...

weixin_42127020的博客 1084

基于MATLAB/Simulink的四旋翼无人机PID控制与仿真(3)

《基于MATLAB/Simulink的四旋翼无人机PID控制与仿真》的第三篇,将为大家继续展示并完善控制与仿真模型。本文将在前文的基础上,完成控制环节增补、参数设置、测试等工作,在不考虑性能(低超调、快、准等)的前提下,保证系统对于一般输入(阶跃、斜坡)的响应稳定性。

jlx142857的博客 9320

药物对接仿真软件:HADDOCK_(3).分子对接基本原理

分子对接(Molecular Docking)是计算化学和结构生物学中的一种重要技术,用于预测小分子(如药物分子)与大分子(如蛋白质)之间的相互作用模式和结合亲和力。这一技术在药物设计和开发中具有广泛的应用,尤其是在寻找和优化潜在的药物候选物方面。本节将详细介绍分子对接的基本原理,包括其理论基础、计算方法和应用。

kkchenjj的博客 1169

C语言中pow()指数函数的使用问题简述

以求153是否为水仙花数为例简述pow函数的使用问题; /*计算153是否为水仙花数*/ int i,x,y,z,a,b,c; i=153; x=i/100; y=i/10%10; z=i%10; /*a=pow(x,3); b=pow(y,3); c=pow(z,3);*/ if(i==pow(x,3)+pow(y,3)+pow(z,3)) { printf("计算得:%d 是水仙花数",(pow(x,3

weixin_44906789的博客 2658

SAP SD模块定价过程后台配置简介

只有手工输入定价时(例如,在定价中的定价浏览屏幕中),或者只有从外部处理转移这些定价时(例如,成本核算),才将这些定价包括在确定(价格确定、输出确定,批次确定)之中。定价过程的定义和分配是SD模块中最核心的配置,包含了条件表、条件类型、存取顺序、发票类型、客户定价过程等,确定了销售订单已什么价格销售、税率、附加折扣等多个条件行程有一个定价过程。12、小计:记录该条件类型在VBAP表中是否存储,以及其后续用途,如记入信贷,占用信贷额度,记入成本等,如果需要金额暂用信贷额度的话,在小计这里选择A即可。

我小时候很黑的博客 3780

cf里的一些简单组合数题

cf711D成环的和不成环的要单独计算,环用双联通做的QAQ /* 所有情况-成环的情况 */ #include<bits/stdc++.h> using namespace std; #define maxn 200005 #define mod 1000000007 #define ll long long struct Edge{int to,nxt...

weixin_30745553的博客 198

[HBM] RAM Cell Self Repair | 内存单元自我修复

对抗错误的大都是冗余,内存颗粒在设计的时候也考虑增加冗余。具体的说:添加冗余或备用的存储单元行和列,及时将测试中的故障进行修复和替换,存储器修复包括行修复,列修复或两者的组合。

串起点滴 783

【GEOS-Chem模拟教程第二期上】生物质燃烧排放 GFED4 数据配置

生物质燃烧排放 GFED4 数据配置

WW、forever的博客 1300

Valid Number 判断一个string是不是有效地数字表达式 @LeetCode

这道题看了看网上的解法,很多都做得很麻烦。其实我觉得,这道题就是考察正则表达式。 package Level2; /** * Valid Number * * Validate if a given string is numeric. Some examples: "0" => true " 0.1 " => true "abc" => false "1 a" =>

1万+

64、5G 侧链通信技术详解

本文详细解析了5G侧链通信的关键技术,包括资源感知与选择、UE间协调、混合ARQ、功率控制、信道探测与CSI报告以及侧链同步。资源感知与选择通过周期性或随机方式实现资源分配,UE间协调通过主动或被动方式避免资源冲突。混合ARQ机制确保数据传输可靠性,功率控制和信道探测优化传输质量并减少干扰。侧链同步则通过多种方式确保设备间时间一致性。这些技术相互配合,构建了高效稳定的5G侧链通信体系,适用于智能交通、物联网、应急通信等多个领域,为未来无线通信发展提供强大支撑。

oil88的博客 99

Maximum Subarray 最大子数组和(连续)@LeetCode

package Level3; import java.util.Arrays; /** * * Maximum Subarray * * Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, give

6667

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Binary Tree Level Order Traversal II 二叉树按层遍历(反向输出)@LeetCode

树的Level Order Traversal加上ArrayList翻转 package Level3; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import Utility.TreeNode; /** * Binary Tree Level Order T

5192

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Binary Tree Level Order Traversal 分层遍历二叉树@LeetCode

package Level3; /** * Binary Tree Level Order Traversal * * Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: G

5153

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Merge Intervals 合并区间@LeetCode

采用的是和Insert Interval一样的思想,只不过最开头要先排序一下,用到了java的Collections.sort(List list, Comparator c) 自己实现了一个Comparator的compare方法 package Level4; import java.util.ArrayList; import java.util.Collections; im

5082

Evaluate Reverse Polish Notation 求RPN的值@LeetCode

用一个Stack就很容易做到了,这道题的最大发现是:这道题是2013-11-27发布出来的,到今天,短短半个月内,居然提交量快到了1万!!! 居然有这么多人都在刷题!!压力山大! package Level3; import java.util.Stack; /** * * Evaluate Reverse Polish Notation * * Evaluate t

4522

Text Justification 文本对齐 @LeetCode

快被这道题搞死了。。 根据这篇重写了 http://www.cnblogs.com/TenosDoIt/p/3475275.html 分析:这一题需要注意两个点,a、当该行只放一个单词时,空格全部在右边 b、最后一行中单词间只有一个空格,其余空格全部在右边。然后只要贪心选择,在一行中尽量放多的单词。 package Level4; import java.util.ArrayL

4510

Celebrity Problem

Celebrity Problem import java.util.Stack; /** In a party of N people, only one person is known to everyone. Such a person may be present in the party, if yes, (s)he doesn’t know anyone in t

3820

3Sum 数组找3数之和为0 @LeetCode

排序,二分法查找,前后双指针 package Level3; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Set; /** * 3Sum * Given an array S of n integers, are there el

3538

Permutations 排序 @LeetCode

package Level3; import java.util.ArrayList; /** * Permutations * * Given a collection of numbers, return all possible permutations. For example, [1,2,3] have the following permutations: [1,2,3

3084

Subsets 求子集 @LeetCode

package Level3; /** * Subsets * * Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must be in non-descending order. The solution set must not contain

3049

Sqrt(x) 求平方根@LeetCode

package Level4; /** * Sqrt(x) * * Implement int sqrt(int x). * * Compute and return the square root of x. * */ public class S69 { public static void main(String[] args) { System.out.pri

2993

Combinations 求1...n中k长度的组合 @LeetCode

和之前的那篇permutation类似,同样的递归思想 package Level3; import java.util.ArrayList; /** * Combinations * * Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.

2991

Permutations 排序(有重复数)II @LeetCode

比起http://blog.youkuaiyun.com/fightforyourdream/article/details/14217105 多加了一个while来去重,发现这个去重方法在另一道题也用过,同样也是DFS里面去重,很好用! 另外就是在最前面加了一个sort,因为如果没加,当输入乱序时就会Output Limit Exceed! package Level4; import ja

2918
上一篇: Anagrams 变位词 @LeetCode
下一篇: Jump Game 跳跃游戏(求是否能跳到最后一个) @LeetCode
chiiis
博客等级 码龄14年 422粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值