整数除法和余数
在处理数字的数字时,需要应用计算除法余数的操作。
任务
给出了一个三位数。显示这个数字的所有数字,从单位开始,得到一个由单位和百位排列组成的新数字。
我们总是将数字视为一个整体,但不要忘记数字是由数字组成的。你如何选择一个数字的所有数字?
事实上,如果你还记得数学,一切都可以很简单地解决。而数学告诉我们,任何数都可以分解成数项之和。
例如:
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 强>
将数字的数字存储在变量中后,我们可以通过将所需数字乘以适当的位因数(乘以 1、10、100 等)从中得到任何其他数字:
例如,下面的行将从原始数字 n
中得到一个新数字,重新排列了百位和个位:
1)个位(存放在 e
中) 乘以 100
,
2) 十位(保存在变量d
中) 乘以 10
,
3) 我们可以简单地将百位数乘以1
,或者简单地取变量s
中存储的值。
然后点 1、2 和 3 的值必须简单地相加,我们得到一个新数字:
<前>
n1 = e*100 + d*10 + s;
完整的程序将如下所示:
<前>
n = 整数(输入())
e = n% 10
d = n // 10% 10
s = n // 100
打印(e, d, s, e*100 + d*10 + s)