求救各位大侠
一个正整数的个位数字是6,如果把个位数字移到首位,所得到的数是原数的4倍,试编程找出满足条件的最小正整数。
求救上题的编程思想和可供的Java代码
谢谢了
[解决办法]
(1)个位数字为6;
(2)将个位的6移到首位,得到的新数是原数的4倍。
假设原来的数字去掉6后为A,那么这个数就是:10A+6,6移到前面去后这个数变成:6*10^N+A
依题意有:(10A+6)*4=6*10^N+A,整理得:13A=2*10^N-8。即等号后面是13的倍数。试算N=5时,A=15384。所以原来的数是153846。
[解决办法]
for(int i = 1; i>0; i++){ String str = i+""; String x = str.substring(str.length()-1); if(x.equals("6")){ int y = Integer.parseInt(6+str.substring(0,str.length()-1)); if(i*4==y){ System.out.println(i); break; } } }
[解决办法]
public static void get() {
int i = 106;
while (true) {
// 如果找到了,则输出,跳出循环
if (i * 4 == change(i) * 6 + i / 10) {
System.out.println(i);
break;
}
i+=10;
}
}
// 寻找数的数量级
public static int change(int d) {
int result = 1;
int temp = d;
while ((temp /= 10) != 0) {
result *= 10;
}
return result;
}
最传统的方法,没有介入其他函数。