Module: 整数除法和保留


Problem

14 /16


初学者最难的题,还是数字的位数

Theory Click to read/hide

在处理数字的数字时,需要应用计算除法余数的操作。 

让我们分析以下任务:
给出了一个三位数。显示这个数的所有数字,得到个位和百位排列的新数

初学者遇到的最困难的问题是如何从数字中取出数字。
事实上,如果你还记得数学,一切都可以很简单地解决。而数学告诉我们,任何数都可以分解成数项之和。
例如:365=3*100+6*10+5*1 。我们看到每个数字都是数字对应数字的乘数。 
我们将展示如何将数字的每个数字放入一个单独的变量中,使用将列除以数字 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
有了数字的保存数字,我们可以通过将所需数字乘以相应数字来从中得到任何数字: 
例如,下面的行将从原来的数字 n 中得到一个新的数字,重新排列了百位和个位:
1)旧的个数(保存在变量 e) 乘以100 
2) 旧的十位数(保存在变量d)  乘以 10 
3) 我们可以简单地将旧的百位数字乘以 1,或者简单地取存储在变量 s
中的值 然后只需将点 1、2 和 3 的值相加并得到一个新数字:

n1 = e * 100 + d * 10 + s;

整个程序将如下所示: <前> 导入 java.util.Scanner; 公共课主要{ public static void main(String[] args) { 扫描仪输入=新扫描仪(System.in); <代码> int n, e, d, s; n = in.nextInt(); e = n % 10; d = n / 10% 10; s = n / 100; System.out.print(e + "" + d + "" + s + "" + (e * 100 + d * 10 + s)); }

Problem

从键盘输入一个三位数。 
编写一个程序,在一行中打印空格:
数字的数字和通过排列个位和十位形成的新数字的总和