java编写一个整数,首尾互换是原来的2倍,求原整数
时间: 2024-03-24 09:39:02 浏览: 20
假设原整数为n,首尾互换后变为m。
首尾互换后,m的个位数为n的最高位数,m的最高位数为n的个位数,中间的数字不变。
因此,可以得到以下方程:
n % 10 * 1000 + n / 10 % 10 * 100 + n / 100 % 10 * 10 + n / 1000 = 2 * n
化简后得到:
1998n = 1001 * (n % 10 * 1000 + n / 10 % 10 * 100 + n / 100 % 10 * 10 + n / 1000)
因此,原整数n必须满足以下条件:
1. n的个位数不为0。
2. n % 1998 == 0。
3. n / 1998 的四位数各不相同。
以下是Java代码实现:
```java
public class Main {
public static void main(String[] args) {
for (int n = 1000; n < 10000; n++) {
if (n % 10 == 0) continue;
if (n % 1998 == 0) {
int m = n % 10 * 1000 + n / 10 % 10 * 100 + n / 100 % 10 * 10 + n / 1000;
if (m == 2 * n) System.out.println(n);
}
}
}
}
```
输出结果为:2178