读入一个数,计算其各位数字之和,用汉语拼音写出和的每一位数字

题目是“读入一个数n,计算其各位数字之和,用汉语拼音写出和的每一位数字”,是用c语言实现的。由于我目前正在学习java,所以想用java来实现下。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。


package com.nuaa.sg;

import java.util.Scanner;

/**
 * 题目是“读入一个数n,计算其各位数字之和,用汉语拼音写出和的每一位数字”,是用c语言实现的。由于我目前正在学习java,所以想用java来实现下。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
 * 
 * @author Dell
 *
 */
public class Test_1 {
     
	  public static int getsum(String s)
	  {
		     int sum=0;
		     for(int i=0;i<s.length();i++)
		     {
		    	 
		    	 sum=sum+s.charAt(i)-'0';
		     }
		  
		    return sum; 
	  }
	public static String solution(String s)
	{
	        if(s==null||s.equals(""))
	        	return "";
	        int sum=getsum(s);
	      String result="";
	      while(sum!=0)
	      {
	    	 int k=sum%10;
	    	 sum=sum/10;
	    	 String temp=getcorsspond(k);
	    	 result=temp+" "+result;
	      }   
		return result.trim();
	}
	public static String getcorsspond(int x)
	{
		 String result="";
		  switch(x)
		  {
		  case 0:
			  result= "ling";
	            break;
	        case 1:
	        	result = "yi";
	            break;
	        case 2:
	        	result = "er";
	            break;
	        case 3:
	        	result = "san";
	            break;
	        case 4:
	        	result = "si";
	            break;
	        case 5:
	        	result= "wu";
	            break;
	        case 6:
	        	result= "liu";
	            break;
	        case 7:
	        	result = "qi";
	            break;
	        case 8:
	        	result= "ba";
	            break;
	        case 9:
	        	result= "jiu";
	            break;
	        default:
	            break;
		  }
		  return result;
	}
	public static void main(String[] args) {
	   Scanner sc=new Scanner(System.in);
	    String line=sc.nextLine();
	    System.out.println(solution(line));
	}

}


猜你喜欢

转载自blog.csdn.net/wwe4023/article/details/76504050