(Python) 整数の除算と剰余


整数の割り算と余り

モジュール「算術式」で整数の除算演算について説明しました
もう一度思い出してみましょう。
// - 整数の除算、除算演算の結果として小数部を破棄する場合
% - 割り算の余りの計算。
負の数の剰余演算  Python は C++ や Pascal などの他のプログラミング言語とは少し異なる方法で実行されます
Python では、剰余を計算する操作は数学的規則に従って実行されます。つまり、整数理論で一般に信じられているように、 剰余は非負の数です。   (非常に役立つ記事 81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC" target=" _blank">こちら)。剰余の符号は除数の符号と同じです。

<プレ> c = 10 // 3 # 答え: c = 3 d = 10% 3 # 答え: d = 1 e = -7 // 4 # 答え: e = -2 f = -7% 4 # 答え: f = 1 e 変数と f 変数の値は次のようになりました。 <プレ> -7 = (-2*4)+1
覚えておく必要があります!
Python では、負の数の剰余を計算する操作は数学的規則、つまり \(-7\ \%\ 4 = 1 \)< に従って実行されます。 br /> Python プログラミング言語では、剰余記号は除数記号と同じです。

整数演算はプログラミングにおいて非常に重要です。これらは正しく理解して使用する必要があります。そしてこれには練習が必要です!

整数の割り算と余り

割り算の余りを計算する操作を適用する必要があることは、数値の桁を扱うときにわかります。
 
タスク
3 桁の数字が与えられます。この数値の単位から始まるすべての桁を表示し、単位と百を並べ替えて形成された新しい数値を取得します。

私たちは常に数値を全体として考えますが、数値は数字で構成されているということを忘れないでください。数値のすべての桁を選択するにはどうすればよい
でしょうか。 実際、数学を覚えていれば、すべては非常に簡単に解決されます。そして数学は、どんな数値も数字の項の合計に分解できることを教えてくれます。

例: 365 = 3*100 + 6*10 + 5*1
各桁が対応するビット項の乗数であることがわかります。

列を数値 10 で割る例を使用して、数値の各桁を個別の変数に取得する方法を示します。数値 10 を使用します。 10 進数システムがあり、それに応じてビット用語は 1、10、100 などになります。

  

この図を分析すると、次のことがわかります。 <プレ> e = n% 10 # 操作 n % 10 - 数値 n の最後の桁を計算します # (単位の桁) 365 % 10 = 5 d = n // 10% 10 # 操作 n // 10 - 数値を 10 倍減らします。 # つまり、数値の最後の桁を破棄します (365 // 10 = 36)。 # これで 10 の位を計算できるようになりました。 # おなじみの操作を結果に適用する - # 数値 10 で割った余りを計算します。36 % 10 = 6 s = n // 100 # 百の位を取得するには、数字の右から 2 桁を切り捨てるだけで十分です。 # つまり、2 を 10 で割ったもの # (n // 10 // 10 または n // 100 と同じ) 365 // 100 = 3
数値の桁を変数に保存すると、目的の桁に適切なビット係数 (1、10、100 など) を乗算して、その桁から他の数値を作成できます。 
たとえば、以下の行は、元の数値 n から百の位と一の位を並べ替えた新しい数値を取得します。
1) 単位の桁 ( e に保存されます)  100 を掛けます。
2) 10 の位 (変数 d に保存)   10 を掛けます。
3) 単純に百の位に 1 を掛けるか、変数 s に格納されている値を取得するだけです。
次に、ポイント 1、2、および 3 の値を単に加算するだけで、新しい数値が得られます。 <プレ> n1 = e*100 + d*10 + s;
完全なプログラムは次のようになります。 <プレ> n = int(入力()) e = n% 10 d = n // 10% 10 s = n // 100 print(e, d, s, e*100 + d*10 + s)