2016-07-16 9 views
1

Mein Ziel ist es, die nächste größere Zahl als eine Eingabe-Ganzzahl zu erhalten, die zwei für n ist.Wie findet man den nächstgrößeren 2 ** n Wert zu einem Wert?

Zum Beispiel, was sollte nearestbigger sein?

integerinput = [2016, 300, 9001] 
for x in integerinput: 
    print(nearestbigger(x)) 

Erwartete Ausgabe

2048 
512 
16384 
+0

ich diese Frage wieder geöffnet haben, weil OP ist ein Python-soluiton sucht, während die so genannte doppelte ist sprachübergreifende, und in der Tat ist es jetzt Python Lösung dort. – shx2

Antwort

1
def nearesbigger(n): 
    if n <= 0: 
     return 1 
    return 2 ** (n-1).bit_length() 
Verwandte Themen