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%2
1){ //正奇数
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;
}
}
}

posted @   堤苏白  阅读(623)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示