Module: (C++) 整数除法和余数


Problem

8 /16


数字位数

Theory Click to read/hide

计算数字的位数

在处理数字的数字时,需要应用计算除法余数的操作。 
 
任务
给出了一个三位数。显示这个数的所有数字,得到个位和百位排列的新数。

对于初学者来说,最困难的问题是如何将一个数字分解成它的组成数字。
事实上,如果你还记得数学,一切都可以很简单地解决。而数学告诉我们,任何数都可以分解成数项之和。
例如:365=3*100+6*10+5*1 。我们看到每个数字都是数字对应数字的乘数。 
让我们展示如何将数字的每个数字放入一个单独的变量中。考虑除法程序 数字 365 乘以数字 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 后的余数,36% 10 = 6 s = n / 100; // 要得到百位数字,去掉数字右边的两位就够了,   // 即除以 10 两次(n / 10 /10 或与 n / 100 相同)365 / 100 = 3
收到数字的所有数字后,我们可以通过将所需数字乘以相应数字来从中得到另一个数字: & nbsp;例如,下面的行将从原始数字 n 中得到一个新的数字,重新排列成百和个:
1)单元数(存储在变量 e中) 乘以100; 
2) 十位数(保存在变量d)  乘以 10; 
3)我们可以简单地将百位乘以1,或者简单地取变量s中存储的值;
然后必须添加点 1、2 和 3 的值,我们得到一个新数字: n1 = e * 100 + d * 10 + s; 整个程序将如下所示:
  #includeiostream> 使用命名空间标准; 主要的() { 诠释 n, e, d, s; 辛>>名词; e = n % 10; d = n / 10% 10; s = n / 100; 输出 << e<< “ “ << d<< “ “ << << “ “ << (e * 100 + d * 10 + s);

Problem

编写一个程序,给定一个三位数字,打印该数字的数字之和以及通过排列个位和十位形成的新数字。

输入 
从键盘输入一个三位数。

印记 
一行中的两个数字,中间用空格隔开:先是数字的位数之和,再是根据题情转换的数字。


例子
<头> <日># <正文>
输入 输出
1 365 14356