读数字

功能:输入一个数,这个数载的范围为(-10000,10000)。要求输出输入的这个数的读法。如果遇到负数,要在前面加上“fu”.

程序:

package readNumber;

import java.util.Scanner;

public classreadNumber{

	publicstaticvoidmain(String[] args){
		Scanner in = new Scanner(System.in);
		int count = in.nextInt();
		int digit;
		int sum=0;
		int a=0;
		String b=" ";
		if( -10000<count && count<10000)
		{
			if(count0)
			{
				do
				{
					digit=count%10;
					sum=sum*10+digit;
					count=count/10;
				}while( count!=0 );
				//System.out.println(sum);
				do
				{
					a=sum%10;
					sum=sum/10;
				switch (a)
				{
				case 1: b="yi";break;
				case 2: b="er";break;
				case 3: b="san";break;
				case 4: b="si";break;
				case 5: b="wu";break;
				case 6: b="liu";break;
				case 7: b="qi";break;
				case 8: b="ba";break;
				case 9: b="jiu";break;
				case 0: b="ling";break;
				}
				if(sum!=0)
				{
				System.out.print(b+" ");
				}
				else if( sum==0)
				{
				System.out.print(b);
				}
				}while( sum!=0 );
			}
		}
		else
		{
			System.out.println("input error");
		}
	}
}
  • 1、这个函数首先是读入一个数字,之后再进行每位数分别为几的一个判断,之后再进行选择读法,然后输出。
  • 2、在判断每位数为几的时候,使用的算法为 x=y%10;y=y/10;
    这段代码可以读出每一位为几,使用 y=0;
    作为判断是否结束判断数字的标志。
  • 3、在上述判断数字的两条代码中,首先输出的是个位,其次是百位,就是说这个顺序的是从右到左的。而我们读数的顺序是从左到右,所以我们需要将数字逆序输出。使用 digit=count%10;sum=sum*10+digit;count=count/10;
    可将先得出的个位作为逆序这个数的第一部分,之后每循环一次得到的一位数,要先将上一部分乘以10在加上该数。等到循环结束,则每一部分相加所得到的值即为我们所需要的数。
  • 4、既然我们得到了输入的数的逆序,此时我们将这个逆序进行每位数的判断,得到的结果为逆序的逆序,即为正序,此时即可进行选择和输出。
稿源:cyang's blog (源链) | 关于 | 阅读提示

本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 综合技术 » 读数字

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录