2017-03-03 9 views

答えて

0
c = 0 
a = 1000000 
while a >= 10: 
    print a 
    a = a/2 
    c = c + 1 
+0

あなたの返事をありがとう。あなたがそこで何をしたのか理解していない?最後にC = 0とC++を追加すると、シンタックスエラーが発生しました。 –

+0

コードを編集しました。 cを印刷して、aが半分になった回数を調べることができます。 –

1

あなたは2つの方法があります。

a =1000000 

import math 
print("theorical iterations {}".format(int(math.log2(a//10)+0.5))) 

counter=0 
while a >=10: 
    counter+=1 
    a//=2 

print("real iterations {}".format(counter)) 

Iを得る:

theorical iterations 17 
real iterations 17 

予測方法は、(上限に)丸いに依存しているのに対し、実験方法は、単に、反復をカウントalog2値の結果(の複雑さと一致しますアルゴリズム)。

(16を超えると17回の反復が必要なので上限に丸められます)

関連する問題