第四周编程题(第二题)

念整数(5分)

题目内容:

你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。

如输入1234,则输出:

yi er san si

注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:

fu er san si yi

 

输入格式:

一个整数,范围是[-100000,100000]。

 

输出格式:

表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。

 

输入样例:

-30

 

输出样例:

fu san ling

package hello;

import java.util.Scanner;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		int number = in.nextInt();
		int num = number;
		int math = 0;	//输入数的位数
		int type;	//记录每数字
		if(number>=-100000 && number<=100000){
			if(number == 0){
				System.out.print("ling");
			}else if(number<0){
				number = -number;
				num = number;
				System.out.print("fu"+" ");		//	如果number为负,则输出fu
				do{
					number /= 10;
					math ++;	//计算输入数的位数
				}while(number>0);
				do{
					type = num / (int)Math.pow(10, (math-1));	//输出输入数的第一个数字
					switch(type){			//输出相应的拼音
					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;
					default:
						System.out.print("ling");
						break;	
					}
					num %= (int)Math.pow(10, (math-1));		//去掉输入数的第一个数字
					math --;	//输入数位数减1
					if(math > 0){
						System.out.print(" ");		//如果输入数数位大于0,则输出空格
					}
				}while(math > 0);
			}else{
				do{
					number /= 10;
					math ++;	//计算输入数的位数
				}while(number>0);
				do{
					type = num / (int)Math.pow(10, (math-1));	//输出输入数的第一个数字
					switch(type){			//输出相应的拼音
					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;
					default:
						System.out.print("ling");
						break;	
					}
					num %= (int)Math.pow(10, (math-1));		//去掉输入数的第一个数字
					math --;	//输入数位数减1
					if(math > 0){
						System.out.print(" ");		//如果输入数数位大于0,则输出空格
					}
				}while(math > 0);
			}
		}else{
			System.out.println("输入范围为[-100000,100000]");
		}
	}	

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值