输入一整数123,返回一反转后的整数321

题目: 输入一整数,返回一反转后的整数,如:输入798,返回897;输入-8653,返回-3568.

数组反转之类的见多了,但整数反转却少见,自己试了一下,不知道这方法行不行,代码如下:

package algorithm;

import java.util.LinkedList;

/**
 * @author RockeyLu<br>
 *         输入一整数,返回一反转后的整数,如:输入798,返回897;输入-8653,返回-3568.
 */
public class IntegerInverse {

	public static void main(String[] args) {
		// int inputInt = 798;
		int inputInt = -8653;
		System.err.println("Input:" + inputInt);
		int result = inverseInteger(inputInt);
		System.err.println("result:" + result);
	}

	/**
	 * 反转整数
	 * 
	 * @param inputInt
	 * @return
	 */
	private static int inverseInteger(int inputInt) {
		if (inputInt == 0) {
			return 0;
		}
		LinkedList<Integer> tempList = new LinkedList<Integer>();
		changeIntegerToList(inputInt, tempList);
		int result = 0;
		for (int i = 0; i < tempList.size(); i++) {
			result += tempList.get(i) * Math.pow(10, i);
		}
		return result;
	}

	/**
	 * 把整数拆分放到集合中去
	 * 
	 * @param inputInt
	 * @param tempList
	 */
	private static void changeIntegerToList(int inputInt,
			LinkedList<Integer> tempList) {
		int temp1 = inputInt / 10;
		int temp2 = inputInt % 10;
		tempList.addFirst(temp2);
		if (temp1 != 0) {
			changeIntegerToList(temp1, tempList);
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值