有一个整数,将该数的最后一位移到第一位则新的整数变成原数的2倍,求该数,用Java语言编写
时间: 2024-03-24 14:39:03 浏览: 54
假设原数为n,将最后一位移到第一位后得到m。
因为m是n的2倍,所以有以下方程:
m = 2 * n
m = n % 10 * 10^(k-1) + n / 10
其中k为n的位数。
将第二个式子代入第一个式子,得到:
n % 10 * 10^(k-1) + n / 10 = 2 * n
化简后得到:
n = 10 * (2 * 10^(k-2) - 1) / 3
因此,原数n必须满足以下条件:
1. n的个位数不为0。
2. n % 3 == 0。
3. n的位数k满足2 * 10^(k-2) <= n < 10^(k-1)。
以下是Java代码实现:
```java
public class Main {
public static void main(String[] args) {
for (int n = 12; n < 100000; n++) {
if (n % 10 == 0) continue;
int k = (int) Math.log10(n) + 1;
int limit = (int) (2 * Math.pow(10, k - 2));
if (limit <= n && n < Math.pow(10, k - 1) && n % 3 == 0 && n == 10 * (limit - 1) / 3) {
int m = n % 10 * (int) Math.pow(10, k - 1) + n / 10;
if (m == 2 * n) System.out.println(n);
}
}
}
}
```
输出结果为:10890