此C ++函数和Python函数之间的区别

时间:2019-05-18 22:19:53

标签: python c++ python-3.x

我在C ++中具有返回正数a放大b倍的正函数。在C ++中,此函数运行没有错误,但我想在Python中使用此函数。谁能说出此函数为什么返回C++却没有在Python中返回结果或我在Python代码中出错的地方吗?

我知道我可以用许多其他方式编写此函数,并且该函数可能不是最佳解决方案,但是此特定示例有什么问题?我必须要做的是在Python中运行此程序,而不必编写明显更好的新功能。为什么我可以用C ++而不是Python运行此代码?

C ++代码:-

int exp(int a,int b){
    int result=1;
    while(b!=0){
        if(b%2==1){
          result*=a;
        }
        b/=2;
        a*=a;
    }
    return result;
}

PYTHON代码:-

def exp(a,b):
  result=1
  while b!=0:
    if b%2==1:
      result*=a
    b/=2
    a*=a
  return result

Python中的while条件有问题吗?

1 个答案:

答案 0 :(得分:2)

您正在Python代码中使用浮点除法:

b/=2

您要整数除法

b //= 2