算法之数字反转问题

4.数字反转问题:

对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
如果 X = 123,则rev(X) = 321;
如果 X = 100,则rev(X) = 1.
现在给出整数x和y,要求rev(rev(x)+ rev(y))为多少? 

代码:(1)方法一;定义一个ArrayList,然后把反转之后的各个数add进入list里面。

public class reverse {

      publicstatic void main(String []args)

      {     Scanner scanner=new Scanner(System.in);

           intone=scanner.nextInt();

           inttwo=scanner.nextInt();

           System.out.println(Reverse(one));

           System.out.println(Reverse(two));

           //intb=Reverse(Reverse(one)+Reverse(two));

           intb=Reverse(one)+Reverse(two);

           intc=Reverse(b);

           System.out.println(b);

           System.out.println(c);   

      }

      publicstatic int Reverse(int x ){

           intresult=0;

           ArrayLista=new ArrayList<>();

           //把数单个蹦以下,写在数组中

           while(x>0)

           {//取个位数,每次只是加入

                 a.add(x%10);

           //取剩余的几位数,先加个位,在加10位,在加。。。

                 x=x/10;

           }

           //此处是要把每一个数,进行组合起来了

           for(inti=0;i

                 result=(int)(result+a.get(i)*Math.pow(10,a.size()-i-1));//pow函数是变为10的多少次方

           }

           returnresult;

      }

}

解法2:直接使用数的规律进行;

public classreverse {

 

   public static int resource(int x){

        long z = x;

        long sum = 0;

        while(z!=0){

            sum = sum*10+z%10;            //重点还是搁这里。。。

            z = z/10;

        }

        return (int)sum;

   }

   public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        while(sc.hasNext()){

            System.out.println(resource(resource(sc.nextInt())+resource(sc.nextInt())));

        }

   }

}

一堆数字,需要将数字转化为String类型时候=====将字符串类型转化为字符数组

 Stringfirst = String.valueOf(firsti);

String second = String.valueOf(secondi);    

 char[]firstC = first.toCharArray();

 char[]secondC = second.toCharArray();

附加的练习一下:

public static void main(String[] args) {

        int i=132;

        String s=String.valueOf(i);

        char []a=s.toCharArray();

        for(int j=0;j<a.length;j++){

            System.out.print(a[j]);

        }

    }

你可能感兴趣的:(算法)