前提int a[3][4]k,i; C++语句if( ((int)pow(2,k-1) & i) )怎样改写为Java

中缀转化为后缀(不含括号版)

 //判断是否为数字效率有点低
 



 



 //右括号将左括号之前所有输出
 

  C语言数学库中用来计算x的y次冪的函数的定义如下: double pow( double x, double y)用该函数用来做整数的幂运算不仅耗时多,结果也经常不够准确
  请你自己写一个计算整数x的y(y是非负整数)次幂的函数,该函数的定义如下:
  只写函数不用考虑输入输出格式。
  函数中无需输出只要将所求的的返回。
  输入和计算结果都在int表示范围内

这道题目乍一看很简单,一个for循环得到最终结果就完事了反正结果条件也限制在int范围内,对吧但是当我写下洳下的代码后:

只有第一个样例是对的。。
我很疑惑当然肯定有我忽略y是0的情况在内,无论如何这种方法都不行,于是我换了递归嘚方式竟然解决了这个问题!代码如下:

其实我自己也有点百思不得其解,按理说他们实现的逻辑都一样递归的执行速度甚至更慢,為什么这里就可以完美解决呢希望有小伙伴可以批评指正。

我要回帖

更多关于 if int 的文章

 

随机推荐