数値(x)としきい値を指定すると、xまでのすべての数値に
Binary AND
を実行することで達成できる最大値を見つけることができます。閾値よりも高い。セット内の「AND」の最大値を見つける
例:2、3が入力された場合、この例で
A = 1 ; B = 1 ; A & B = 1
A = 1 ; B = 2 ; A & B = 0
A = 2 ; B = 1 ; A & B = 0
A = 2 ; B = 2 ; A & B = 2
IはAND
操作から得た最大値は2であり、それはそう閾値3 2未満であります印刷すべき答えです。
これらのすべての入力から最大値を見つけて印刷する必要があります。私はlist
、map
のようなデータ構造のいくつかの種類を使用している場合、私はより効率的にこの問題を解決することができ、このような問題に私の以前の経験から、このコードで
maxValue = 0
n,k1 = input().strip().split(' ')
n,k1 = [int(n),int(k1)]
for j in range (1,n):
for k in range (j+1,n):
jkValue = j&k
if jkValue > maxValue and jkValue < k1:
maxValue = jkValue
print(maxValue)
をこの問題を解決しました。
データ構造を使用してこの問題を解決することは可能ですか、それとも最小限の複雑さを達成できましたか?それがより良くできたら、どうやって?
これはおそらく最小限の複雑さです。 'item in list'のようなものを使っても、forループの中でforループを実行します。 – meyer9
問題文は理解できません。 「それまでのすべての数字に最大値がしきい値未満でなければならない」という部分は、文法上の意味を持たない。 – user2357112
質問は非常に理解しにくいです。 'max(i&j = 0