我在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条件有问题吗?
答案 0 :(得分:2)
您正在Python代码中使用浮点除法:
b/=2
您要整数除法
b //= 2