NOI的1.5.28分离整数的各个数位

描述
给定一个整数,要求从个位开始分离出它的每一位数字。

输入
输入一个整数,整数在1到100000000之间。
输出
从个位开始按照从低位到高位的顺序依次输出每一位数字。数字之间以一个空格分开。
样例输入
123
样例输出
3 2 1

解法一:(普通解法)

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
	Scanner in=new Scanner(System.in);
	int a,b,c,d,e,f,g,h,i;
	int n=in.nextInt();
	//由于所给出的范围为1到100000000,所以可从范围出发
	//判断该数所在的范围,然后再输出每位上的数
	i=n%10;
	h=n/10%10;
	g=n/100%10;
	f=n/1000%10;
	e=n/10000%10;
	d=n/100000%10;
	c=n/1000000%10;
	b=n/10000000%10;
	a=n/100000000;
	if(n==100000000)  {
		System.out.print(i+" ");
		System.out.print(h+" ");
		System.out.print(g+" ");
		System.out.print(f+" ");
		System.out.print(e+" ");
		System.out.print(d+" ");
		System.out.print(c+" ");
		System.out.print(b+" ");
		System.out.print(a+" ");
	}else {
	if(n<100000000&&n>=10000000) {
		System.out.print(i+" ");
		System.out.print(h+" ");
		System.out.print(g+" ");
		System.out.print(f+" ");
		System.out.print(e+" ");
		System.out.print(d+" ");
		System.out.print(c+" ");
		System.out.print(b+" ");
	}
	else {
		if(n<10000000&&n>=1000000) {
			System.out.print(i+" ");
			System.out.print(h+" ");
			System.out.print(g+" ");
			System.out.print(f+" ");
			System.out.print(e+" ");
			System.out.print(d+" ");
			System.out.print(c+" ");
		}
		else {
			if(n<1000000&&n>=100000) {
				System.out.print(i+" ");
				System.out.print(h+" ");
				System.out.print(g+" ");
				System.out.print(f+" ");
				System.out.print(e+" ");
				System.out.print(d+" ");
			}
			else {
				if(n<100000&&n>=10000){
					System.out.print(i+" ");
					System.out.print(h+" ");
					System.out.print(g+" ");
					System.out.print(f+" ");
					System.out.print(e+" ");
				}
				else {
					if(n<10000&&n>=1000) {
						System.out.print(i+" ");
						System.out.print(h+" ");
						System.out.print(g+" ");
						System.out.print(f+" ");
					}
					else {
						if(n<1000&&n>=100) {
							System.out.print(i+" ");
							System.out.print(h+" ");
							System.out.print(g+" ");
						}
						else {
							if(n<100&&n>=10) {
								System.out.print(i+" ");
								System.out.print(h+" ");
							}
							else {
									System.out.print(i+" ");
								}
							}
						}
					}
				}
			}
		}
	}		
  }
}

解法二:(简便解法)

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
	Scanner in=new Scanner(System.in);
	int n=in.nextInt();
	int a,b;
	//无论哪个数都可从它的个位输出,然后循行渐进输出每位上的数
	for(int i=0;i<9;i++) {
		b=n/10;
		a=n%10;
		n=n/10;
		if(b==0&&a!=0 ) {//可以直接b==0,不需要a!=0也可以
			//当输到最高位时,将最高位输出之后则应该结束循环。
			System.out.println(a);
			break;
		}
		System.out.print(a+" ");
	}				
  }
}
发布了15 篇原创文章 · 获赞 16 · 访问量 334

猜你喜欢

转载自blog.csdn.net/weixin_45455503/article/details/104185628
今日推荐