tlx119 发表于 2008-3-18 07:06

新手上路,请教高手问题!

我刚开始是学习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();
        }

}


我向想大家请教好的算法,以及我这个方法里的问题该如何解决!
感谢

tlx119 发表于 2008-3-18 07:10

这个代码我认为有两个问题
一个是如何获得数字的“位数”,就是这里的 10
二个是如何获取个位数字,输出结果是:0987654321

tlx119 发表于 2008-3-18 08:13

请大家帮忙解答哈

hwoarangzk 发表于 2008-3-18 09:42

如果你只是想颠倒输入内容的顺序的话,有一个叫reverse的方法可以

Alistair001 发表于 2008-3-19 19:49

你上面的代码只要将第一个for循环改为
for(int i=9; i<=0; i--)就能得到倒序

sinner 发表于 2008-3-21 18:40

晕。。我是小高中生,见到数学符号就晕啊,楼主看我的代码吧:

/**
*  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,还是自己尝试写写吧。呵呵~``

heilong 发表于 2008-3-21 20:29

还是用集合吧。一下就搞定

tlx119 发表于 2008-3-28 09:37

感谢大家帮忙!

龙杰 发表于 2008-3-29 20:27

我是一个JAVA新手,刚开始学习它,也刚开始学习编程,请问高手们我首先应该从那开始学

页: [1]

编程论坛