在处理数字的数字时,需要应用计算除法余数的操作。
让我们分析以下任务:
给出了一个三位数。显示这个数的所有数字,得到个位和百位排列的新数
初学者遇到的最困难的问题是如何从数字中取出数字。
事实上,如果你还记得数学,一切都可以很简单地解决。而数学告诉我们,任何数都可以分解成数项之和。
例如:
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));
}
代码>