2016-09-19 7 views
0

この問題は、50桁ごとに100個の数字を集計するよう求められます。 http://code.jasonbhill.com/python/project-euler-problem-13/プロジェクトオイラー#13 Python。不正確なキャリーオーバー

我々は

a=37107287533902102798797998220837590246510135740250 
+46376937677490009712648124896970078050417018260538 
... 
+20849603980134001723930671666823555245252804609722 
+53503534226472524250874054075591789781264330331690 
print(a) 

>>37107287533902102798797998220837590246510135740250(間違った)

を得++メモ帳で "\ N +" で\nを置き換えることができます我々としても(

a=37107287533902102798797998220837590246510135740250 
a+=46376937677490009712648124896970078050417018260538 
... 
a+=20849603980134001723930671666823555245252804609722 
a+=53503534226472524250874054075591789781264330331690 
print(a) 

>>553...を得\na+=\nを置き換えることができます正しい)

これはBigInteger算術の機能のようです。どの条件の下で、すべての数値の合計(方法1)は反復的な増分(方法2)とは異なる結果をもたらすか?

答えて

1

結果から分かるように、最初の命令セットは合計を計算していません。それは最初の割り当てを保存しました。 +Nは有効な命令であるため、割り当て後の次の行は何も行いません。

a=42\ 
+1 
:したがって

a=42 
+1 
print a 

プリント42

が2行に命令を作成するには、終了の改行\nをエスケープする必要があります

0

Pythonソースコード行は、改行文字で終了します。最初の例の後続の行は、前に単項プラス演算子を持つ単一の整数からなる別々の式文ですが、何もしません。彼らは式を評価し(その結果、整数定数そのものになります)、結果を無視します。すべての数値を1行に置くか、加算の周りにかっこを使用すると、単純和も同様に働きます。

関連する問題