一天一个算法题-简单的-求一个整数的反序列整数。

来源:互联网 发布:中国网络四大神兽 编辑:程序博客网 时间:2024/06/08 05:09

例如:现在有整数1234,输出4321整数,问题摘自<<c语言范例开发大全>>

算法实现的不够好.

package com.jue.numberreverse;public class NumberReverse {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint old = 123456789;System.out.println("old:" + old);System.out.println("new:" + getReverseDataNumber(old));}public static int getReverseDataNumber(int old) {final int length = getDataLength(old);final int[] datas = new int[length];int tempdata = old;for (int i = 0; i < length; i++) {int dataInIndex = tempdata / getMultipleData(length - 1 - i);datas[i] = dataInIndex;tempdata -= dataInIndex * getMultipleData(length - 1 - i);}int newdata = 0;for (int i = 0; i < datas.length; i++) {newdata += datas[i] * getMultipleData(i);}return newdata;}private static int getMultipleData(int indexInNumber) {if (indexInNumber == 0) {return 1;}return 10 * getMultipleData(indexInNumber - 1);}public static int getDataLength(int data) {return String.valueOf(data).length();}}


原创粉丝点击