计算一个数的N次方,int和Integer的区别

一:给定一个数d和n,如何计算d的n次方?例如:d=2,n=3,d的n次方为2^3=8.

第一种方法是自定义计算:

static double pow(double d,double n){
	if(n==0) return 1;
	if(n==1) return d;
	double result=1;
	if(n>0){
		result=1;
		for (int i = 0; i < n; i++) {
			result=result*d;
		}
		return result;
	}
	for(int i = 0; i < -n; i++) {
		result=result*d;
	}	
	return 1/result;
}

第二种方法是使用java自带的函数:

	public static void main(String[] args)  {
			double a=2;
			double b=-2;
			double m=Math.pow(a, b);
			System.out.println(m);
	}

二:int和integer的区别

1.数据类型不同:int是基础数据类型,而integer是包装数据类型;

2.默认值不同:int的默认值是0,而Integer的默认值是null;

3.内存中存储的方式不同:int在内存中直接存储的是数据值,而Integer实际存储的是对象引用,当new一个integer时实际上是生成一个指针指向此对象;

4.实例化方式不同:Integer必须实例化才可以使用,而int不需要;

5.变量的比较方式不同:int可以使用==来对比两个变量是否相等,而Integer一定要使用equals来比较两个变量是否相等。

三.Integer和int的比较

1.由于Integer实际是对一个integer对象的引用,所以两个通过New生成的integer变量永远不相同的,因为new生成的是两个不同的对象,其内存地址不同。

public static void main(String[] args){
		Integer i1=new Integer(10);
		Integer i2=new Integer(10);
		System.out.println(i1.equals(i2));//true
		System.out.println(i1==i2);//false
}

2.非new生成的Integer变量指向的是Java常量池中的变量,而new出来的对象指向的是堆中新建的对象,两者内存地址不同。

public static void main(String[] args){
		Integer i1=10;
		Integer i2=new Integer(10);
		System.out.println(i1==i2);//false
}

3.Integer变量和int变量进行比较时,只要两个变量的值相等,则结果就为true,(因为包装类Integer和基本数据类型比较的时候,java会自动拆箱为int,然后进行比较,实际上就是两个int变量进行比较)。

public static void main(String[] args){
	    int i1=new Integer(10);
		Integer i2=new Integer(10);
		System.out.println(i1==i2);
}
		

4.两个非new出来的Integer对象,进行比较的时候,如果两个变量的值区间在[-128~128)之间的时候,则返回的结果为true,如果两个变量的变量值不在这个区间,则比较的结果为false。

public static void main(String[] args){
		Integer i1=-127;
		Integer i2=-127;
		System.out.println(i1==i2);//true
	    Integer i3=-128;
		Integer i4=-128;
		System.out.println(i3==i4);//true
		Integer i5=-129;
		Integer i6=-129;
		System.out.println(i5==i6);//false
}
public static void main(String[] args){
	   Integer i1=128;
	   Integer i2=128;
	   System.err.println(i1==i2);//false
       Integer i3=127;
	   Integer i4=127;
	   System.out.println(i3==i4);//true
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以定义一个,输入参为x和n,输出为x的n次方。 具体实现可以使用循环,从1到n依次累乘x,最后返回结果即可。如果n为负,则先将x取倒,再按照正的方式计算,最后再将结果取倒。 代码示例: def power(x, n): if n == : return 1 elif n < : x = 1 / x n = -n result = 1 for i in range(n): result *= x return result ### 回答2: 要实现一个计算一个x的n次方的函,这个函的核心思路是使用循环来迭代计算,并使用一个变量来记录运算结果。 首先,需要定义一个,让它接收两个参:x和n。这个函的返回值应该是整。函名可以是power或者myPow。 接下来,我们需要初始化一个常量变量result,用于存放运算结果。因为任何的0次方都是1,所以我们可以先将result设置为1,以便我们在后面的每一次循环迭代中,都能将计算结果乘以x。 然后,我们需要一个循环来迭代计算。这个循环需要执行n次,每一次都将result乘以x,即: for (int i=0; i<n; i++){ result *= x; } 最后,我们将计算结果返回即可。完整的函实现如下: int myPow(int x, int n) { int result = 1; for (int i=0; i<n; i++){ result *= x; } return result; } 需要注意的是,在实际应用中,由于计算n次方可能会超出int类型的取值范围,因此需要使用更大的据类型来存储计算结果,例如long long等。此外,为了程序的效率,也可以考虑使用递归来实现幂运算。 ### 回答3: 幂运算是指学中的一种运算,即将一个(底)自乘若干次(指)得到的运算。在计算机科学中,幂运算是极其常见的运算,特别是在计算机算法和程序设计中,这种操作更是经常性出现。要实现整的幂运算,需要定义一个。 函名:pow(x,n) 参:x为底,n为指 返回值:x的n次方实现步骤: 首先判断n是否为整,如果不是整,返回错误提示。 如果n为0,直接返回1,因为任何的0次方都是1。 如果n为正,则递归调用pow函,直到n等于0返回1。 如果n为负,则先取绝对值,递归调用pow函计算出结果后再将结果取倒即可。 以下是Python语言的实现代码: ```python def pow(x,n): if not isinstance(n,int): return "Error: The exponent n must be an integer." if n==0: return 1 elif n>0: return x*pow(x,n-1) else: return 1/(pow(x,-n)) ``` 这样,我们就可以使用pow函计算任意整的幂运算了。例如,pow(2,3)返回8,pow(5,-2)返回0.04。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值