判断一个整数的位数并将它逆序输出

题目要求很简单,对一个整数进行判断并将它逆序输出

 

 

例如:给出的整数是123456,输出它的位数是6,并逆序输出位654321.

 

 

 

先使用一种常规的操作数据本身的方法,因为判断的是整数,所以可以采用对10取整的方法,依次将一个整数的随后一位去掉,直到这个数变成0,表示已经到了最高位,之前累计计算了几次,这个数就是几位数。但是使用这种方法一定不要忘记有数字为0这一特殊情况。

另外:

如果是在C语言里,循环的判断条件可以直接写数字本身进去,因为在C语言里,0可以表示false。但是Java不可以。

public class Demo {
	public static void main(String[] args) {
		System.out.println(fun(1000));
		nprint(1000);
	}
	/**
	 * 判断是几位数
	 */
	public static int fun(int num) {
		int length = 0;
		if(num == 0) {
			length = 1;
		}
		while(num != 0) {
			num /= 10;
			length ++;
		}
		return length;
	}
	/**
	 * 逆序输出
	 */
	public static void nprint(int num) {
		if(num == 0) {
			System.out.println(0);
		}
		while(num != 0) {
			int yushu = num % 10;
			System.out.print(yushu);
			num /= 10;
		}
	}
}

还有一种更为简便的方法,甚至于超越了整数或者说数字的界限

 

即直接判断字符串,返回字符串的长度,然后逆序输出。

public class Demo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		sc.close();
		System.out.println("这个数是:" + str.length() + "位");
		System.out.print("逆序输出为:");
		for(int i = str.length() - 1; i >= 0; i--) {
			System.out.print(str.charAt(i));
		}
	}
}

 

你可能感兴趣的:(典型问题)