Разница между этой функцией C ++ и функцией Python - PullRequest
2 голосов
/ 19 мая 2019

У меня есть функция в C ++, которая возвращает положительное число a увеличенное b раз. В C ++ эта функция выполняется без ошибок, но я хочу использовать эту функцию в Python. Кто-нибудь может сказать, почему эта функция возвращает результат в C++, но не возвращает его в Python или где я допустил ошибку в коде Python?

Я знаю, что могу написать эту функцию многими другими способами и что эта функция может быть не лучшим решением, но что не так с этим конкретным примером? Что мне нужно сделать, чтобы запустить это в Python без написания новой, лучшей функции, очевидно. Почему я могу запустить этот код в C ++, но не в Python?

C ++ CODE: -

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

КОД ПИТОНА: -

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

Что-то не так с условием while в Python ???

1 Ответ

2 голосов
/ 19 мая 2019

Вы используете деление с плавающей запятой в коде Python:

b/=2

Вы хотите целочисленное деление:

b //= 2
...