Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 두 정수의 합

<시간/>

두 개의 정수와 b가 있다고 가정합니다. 우리의 임무는 이 두 정수의 합을 찾는 것입니다. 한 가지 제약 조건은 + 또는 -와 같은 연산자를 사용할 수 없다는 것입니다. 따라서 a =5이고 b =7이면 결과는 12가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 해결을 위해 비트 논리 연산자를 사용합니다.
  • b =0이면 a를 반환합니다.
  • 그렇지 않으면 결과를 한 번 왼쪽으로 이동한 후 XOR b, a AND b를 제공하여 sum 함수를 재귀적으로 사용

예제(파이썬)

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

#include <iostream>
using namespace std;
class Solution {
   public:
   int getSum(int a, int b) {
      return b == 0?a:getSum(a^b, (unsigned int)(a&b)<<1);
   }
};
main(){
   Solution ob;
   cout<<ob.getSum(5,7)<<endl;
}

입력

a = 5
b = 7

출력

12