私はCSの学生で、約1週間前にCracking the CodingInterviewを購入しました。私はちょうどビッグオーの章にいます、そして私はおそらく数字の数字を合計するアルゴリズムを見つけました。一見混乱しているように見えたので、Pythonで実行しましたが、想定どおりに動作しませんでした。見てください:
int sumDigits(int n) {
int sum= 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
私が理解していることから、このコードは実際には特定の数値の桁の合計を返しませんか、それともそうですか?これがどのように行われるかを本当に知りたいのですが、Pythonで試した例が機能しなかったため、これがどのように機能するかを実際に確認することはできません。
このアルゴリズムは、に依存しn /= 10
ている整数の除算(つまり5/2 === 2
)。Python 3を使用し//
ている場合は、を使用する必要があるため、おそらく次のようになります。
def sumDigits(n):
sum = 0
while n > 0:
sum += n % 10
n //= 10 # integer division
return sum
sumDigits(123) # 6
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加