将一个 m 位(m>1)的正整数 n,依次去掉 n 中的某一位数字,得到 m 个整 试建立一个
时间: 2023-09-07 07:02:43 浏览: 108
方法如下:
设 m 位正整数 n 的各位数字依次为 d_m, d_{m-1}, ..., d_2, d_1。
1. 去掉最高位数字:去掉 d_m 后得到的整数为 d_{m-1}\cdot 10^{m-1} + d_{m-2}\cdot 10^{m-2} + ... + d_2\cdot 10^2 + d_1\cdot 10^1。
2. 去掉第二高位数字:去掉 d_{m-1} 后得到的整数为 d_m\cdot 10^{m-2} + d_{m-2}\cdot 10^{m-3} + ... + d_2\cdot 10^1 + d_1\cdot 10^0。
3. 依次类推,去掉第 i 位数字后得到的整数为 d_m\cdot 10^{m-i} + d_{m-1}\cdot 10^{m-i-1} + ... + d_{i+1}\cdot 10^1 + d_{i-1}\cdot 10^0 + ... + d_1\cdot 10^{i-2}。
这样,可以得到 m 个整数,它们分别为:
1. d_{m-1}\cdot 10^{m-1} + d_{m-2}\cdot 10^{m-2} + ... + d_2\cdot 10^2 + d_1\cdot 10^1,
2. d_m\cdot 10^{m-2} + d_{m-2}\cdot 10^{m-3} + ... + d_2\cdot 10^1 + d_1\cdot 10^0,
3. d_m\cdot 10^{m-3} + d_{m-1}\cdot 10^{m-4} + ... + d_3\cdot 10^1 + d_2\cdot 10^0,
...
m. d_m\cdot 10 + d_{m-1}\cdot 1。
需要注意的是,在生成这些整数时,我们应该保证去掉某一位后得到的整数不以零开头,且保持和原整数相同的位数。
这样的集合可以用一个数组来表示,数组中的元素依次为这 m 个整数。由于每个整数的位数最多是 m-1,因此可以用一个 int 类型的数组来存储这些整数。
以上就是将一个 m 位正整数 n 按要求去掉某一位数字后得到的 m 个整数的方法。
阅读全文