一个正整数的个位数字是6,如果把个位数字移到首位,所得到的数是原数的4倍,试编程找出满足条件的最小正整数。
求救上题的编程思想和可供的Java代码谢谢了
求救上题的编程思想和可供的Java代码谢谢了
解决方案 »
- 这个命令谁能帮我转成java语言谢谢,悬赏100分
- java 中怎么继承一个对话框也就是JDialog
- 急救:jasperreport 1.1.1 编译报表设计文件出错!
- 求助 用java将鼠标控制在某个区域内
- 我的程序可以运行,但是在编译是却出现了提示(不是错误),请问是什么问题?
- 请问怎样用Eclipse来运行java的Applecation?
- 项目咨询调查??
- HTTP的连接状态 & HTTP InputStream 问题
- switch case的条件为常量仍然报错不是常量
- java String.format 补不了空格是为什么?!
- 问几个简单的语句~
- 聊天系统的好友列表数据库怎么设计?
(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;
}
}
}
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;
}最传统的方法,没有介入其他函数。
int i;
double sum;
for(i=0;;i++){
sum=(Math.pow(10,(double) i)*2)-8;
if((int)sum%13==0){
sum/=13;
sum=10*sum+6;
System.out.println((int)sum);
break;
}
}