新手上路,请教高手问题!
我刚开始是学习JAVA,还没学算法,做了个题目遇到点困难,请大家帮忙要求是将输入的数字,例如 7679536,倒过来输入 结果:6359767
我的代码:
public class DigitExtractor
{
private int target;
public DigitExtractor( int numbers)
{
target = numbers;
}
public void nextDigit()
{
int[] data = new int[10];
for ( int i = 9; i >= 1; i--)
{
int digit = (int) (target / Math.pow(10, i));
data[i] = digit;
target -= digit * Math.pow(10, i);
}
for ( int m = 0; m <= 9; m++)
{
System.out.println(data[m]);
}
}
public static void main ( String[] args)
{
DigitExtractor leot = new DigitExtractor(1234567895);
leot.nextDigit();
}
}
我向想大家请教好的算法,以及我这个方法里的问题该如何解决!
感谢
一个是如何获得数字的“位数”,就是这里的 10
二个是如何获取个位数字,输出结果是:0987654321 请大家帮忙解答哈 如果你只是想颠倒输入内容的顺序的话,有一个叫reverse的方法可以 你上面的代码只要将第一个for循环改为
for(int i=9; i<=0; i--)就能得到倒序 晕。。我是小高中生,见到数学符号就晕啊,楼主看我的代码吧:
/**
* Numb.java
* 這個類用於將以一個數字反轉
*/
public class Numb{
private String str;//变量用于存放待处理数字
/**构造方法,测试时,实例化对象时可以传个值*/
public Numb(String str){
this.str = str;
}
/**处理方法*/
public String reverse(){
/*定义空字符*/
String s = "";
/*获得字符串长度*/
int c = str.length();
/*放到字节数组中*/
char[] chs = str.toCharArray();
/*从后往前,循环赋值给空字符*/
for(int i=c-1;i>=0;i--){
s += String.valueOf(chs[i]);
}
/*返回处理结果*/
return s;
}
}
/**
* Test.java
*
* 這個类用于测试
*/
public class Test{
public static void main(String[] args){
Numb objNumb = new Numb("7679536");
String s = objNumb.reverse();
System.out.println(s);
}
}
p.s:
当然可以用集合,但既然初学嘛,况且是J2SE,还是自己尝试写写吧。呵呵~`` 还是用集合吧。一下就搞定 感谢大家帮忙! 我是一个JAVA新手,刚开始学习它,也刚开始学习编程,请问高手们我首先应该从那开始学
页:
[1]
