2.计算 x 的 n 次幂函数。
计算 x 的 n 次幂函数
题目说明:
100.0 < x < 100.0
n 是 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1] 。
解题
分析:x位double类型,且在(-100.0,100.0),n为int类型整数,可用递归或迭代。
import java.util.Scanner;
class Solution {
public static void main(){
Scanner s=new Scanner(System.in);
System.out.println("请输入x的值,x在-100.0至100.0之间");
double x;
int n;
String str;
while(true){
str=s.next();
x=Double.parseDouble(str);
if(x>-100.0&&x<100.0){
break;
}
else{
System.out.println("请重新输入x的值,x在-100.0至100.0之间");
}
}
System.out.println("请输入n的值");
n=s.nextInt();
s.close();
Solution solution=new Solution();
double result=solution.myPow(x,n);
System.out.println("x 的 n 次幂函数为:"+result);
}
public double myPow(double x, int n) {
double count=1.0;
if(n==0){
return count;
}
if(n>0){
while(n>0){
count*=x;
n--;
}
}
else {
while(n<0){
count*=x;
n++;
}
count=1.0/count;
}
return count;
}
}
解法二:快速幂
class Solution {
public double myPow(double x, int n) {
if(n0){
return 1.0;
}
else if(n%21){ //正奇数
return myPow(x,n-1)x;
}
else if(n%2==-1){ //负奇数
return myPow(x,n+1)(1/x);
}
else{
double res =myPow(x,n/2); //统一处理n为偶数情况
return res*res;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?