Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの2つの整数の合計


2つの整数aとbがあるとします。私たちの仕事は、これら2つの整数の合計を見つけることです。 1つの制約は、+や-のような演算子は使用できないということです。したがって、a=5およびb=7の場合、結果は12になります。

これを解決するには、次の手順に従います-

  • 解決には、ビット単位の論理演算子を使用します
  • b =0の場合、aを返します
  • それ以外の場合は、XOR bを指定して合計関数を再帰的に使用し、結果を1回左シフトした後にANDbを使用します

例(Python)

理解を深めるために、次の実装を見てみましょう-

#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

  1. Pythonでのパスの合計

    1つのツリーと合計があるとします。そのパスをたどると、与えられた合計と一致する合計が得られるように、1つのパスを見つける必要があります。ツリーが[0、-3,9、-10、null、5]のようで、合計が14であるとすると、パス0→9→5があります。 これを解決するために、次の手順に従います。 ルートがnullの場合は、Falseを返します 左右のサブツリーが空の場合、sum – root.val =0の場合はtrueを返し、それ以外の場合はfalseを返します 戻り値solve(root.left、sum – root.val)またはsolve(root.right、su

  2. Pythonで整数の文字列を複素数に解凍するにはどうすればよいですか?

    文字列には、カンマで区切られた2つの整数が含まれています。最初に、数字を持つ2つの文字列のリストに分割されます。 >>> s="1,2".split(",") >>> s ['1', '2'] 次に、2つの項目が整数に変換され、complex()関数の引数として使用されます >>> complex(int(s[0]), int(s[1])) (1+2j) これにより、複素数の整数の文字列が解凍されます