如何找到一个数字X,如果我们将最后一个数字移动到第一个数字,将等于双倍X.

rek*_*nyz 5 java numbers

"将最后一位数移到第一位"意味着:12345 - > 51234

有人告诉我必须有答案.我认为它应该很简单,但即使编码我也找不到任何X. 有人帮忙吗?

public static void main(String[] args) {
    for(int i=10; s<99999; i++){
        if(2*i==convertInt(i)){
            System.out.println(i);
        }
    }
}

private static int convertInt(int i) {
    String s = i+"";
    int index = s.length()-1;
    String newS = s.charAt(index) + s.substring(0, index);
    return Integer.parseInt(newS);
}
Run Code Online (Sandbox Code Playgroud)

Aza*_*Aza 8

我用过这个函数:

public static boolean isMultiple(int x) {
    String g = String.valueOf(x);
    g = g.substring(g.length()-1) + g.substring(0, g.length()-1);
    int y = Integer.parseInt(g);
    if(y == x * 2) return true;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

在这个循环中:

int x = 10;
while(!isMultiple(x)) {
    System.out.println(x + ", " + isMultiple(x));
    x++;
}
Run Code Online (Sandbox Code Playgroud)

我已经没有达到6.5亿的真正价值.我有一种强烈的感觉,这实际上是不可能的.我的猜测是,没有任何数字可以用于此,但我将保持这种运行.如果我找到一个,我会编辑它.

编辑:似乎有这样的数字.往上看.

  • 在`isMultiple`中,你可以只返回Integer.parseInt(String.valueOf(x%10)+(x/10))== x*2`以避免子串调用.这可能会让你在循环中获得更高的一点但仍然没有接近实际值. (2认同)