(質問を確認する)整数を言う

10をnで割り続け、nが数桁になるようにし、マスクを取得します。

毎回nをマスクで除算してnの最上位桁を取得し、同時にmask / = 10、ループはマスク== 0になるまで続きます。

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		int flag = 0;
		if(n<0)
		{
			System.out.print("fu");
			flag = 1;
			n = -n;
		}
		int t = n;
		int mask = 1;
		while(t>9)
		{
			t /= 10;
			mask *= 10;
		}
		while(mask>0)
		{
			if(flag == 0)
			{
				flag = 1;
			}
			else
			{
				System.out.print(" ");
			}
			int tmp = n;
			tmp /= mask;
			switch(tmp) {
			case 0 : System.out.print("ling");break;
			case 1 : System.out.print("yi");break;
			case 2 : System.out.print("er");break;
			case 3 : System.out.print("san");break;
			case 4 : System.out.print("si");break;
			case 5 : System.out.print("wu");break;
			case 6 : System.out.print("liu");break;
			case 7 : System.out.print("qi");break;
			case 8 : System.out.print("ba");break;
			case 9 : System.out.print("jiu");break;
			}
			n = n-tmp*mask;
			mask /= 10;
		}	
	}

}

 

 

おすすめ

転載: blog.csdn.net/yiwaite/article/details/102569216