Module: (C++) 整数の除算と剰余


Problem

8 /16


数字の桁

Theory Click to read/hide

数値の桁数を計算する

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

初心者にとって最も難しい問題は、数値を構成桁に分割する方法です。
実際、数学を覚えていれば、すべては非常に簡単に解決されます。そして数学は、どんな数値も数字の項の合計に分解できることを教えてくれます。
例: 365=3*100+6*10+5*1 。各桁が、数値の対応する桁の乗数であることがわかります。
数値の各桁を個別の変数に取得する方法を示しましょう。分割手順を検討してください。数値 365 と数値 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 桁を切り捨てるだけで十分です。   // つまり、10 で 2 回割ります (n / 10 /10 または n / 100 と同じ) 365 / 100 = 3
数値のすべての桁を受け取ったら、必要な桁と対応する桁を乗算して、それらから別の数値を作成できます。たとえば、以下の行は、元の数値 n から百の位と一の位を並べ替えた新しい数値を取得します。
1) ユニット数 (変数 e に保存) 100 を掛けます。 
2) 10 の位 (変数 d に保存)  10 を掛けます。  >
3) 単純に百の位に 1 を掛けるか、変数 s に格納されている値を取得するだけです。
次に、ポイント 1、2、および 3 の値を追加する必要があり、新しい数値が得られます。 n1 = e * 100 + d * 10 + s; プログラム全体は次のようになります。
  #includeiostream> 名前空間 std を使用します。 主要() { int n、e、d、s; シン>> n; e = n % 10; d = n / 10% 10; s = n / 100; cout << e<< " " << d<<; " " << s<<; " " << (e * 100 + d * 10 + s); }

Problem

与えられた 3 桁の数字に対して、その数字の合計と、1 と 10 を並べ替えて形成された新しい数字を出力するプログラムを作成してください。

入力
キーボードから 3 桁の数字を入力します。

インプリント
スペースで区切られた 1 行の 2 つの数値: 最初に数値の桁の合計、次に問題の条件に従って変換された数値。


<頭> <本体>
# 入力 出力
1 365 14 356