念数字
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:
0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
输入格式:
输入在一行中给出一个整数,如:1234。
提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si。
输入样例:
-600
输出样例:
fu liu ling ling
题目判定
解题程序
编译器:*
JAVAC
程序代码:*
import java.util.Scanner;
public class Main {
public static void f(int i)
{
int [] array = new int[20];
int cnt =0;
int temp =Math.abs(i);
// int k=0;
// while(temp>0) //计算位数
// {
// temp /=10;
// cnt++;
// }
temp=Math.abs(i);
while(temp>0)
{
array[cnt] = temp%10;
temp /=10;
cnt++;
}
for(int n=cnt-1;n>0;n--)
{
switch(array[n]){
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;
}
}
switch(array[0]){
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;
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
if(i==0)
{
System.out.print("ling");
}
else if(i<0)
{
System.out.print("fu ");
f(i);
}
else
{
f(i);
}
}
}
或者
import java.util.Scanner;
public class Main{
public static void main(String [] args){
Scanner scan = new Scanner(System.in);
int n =scan.nextInt();
if(n<0)
{
System.out.print(“fu “);
}
n = Math.abs(n);
int i =f(n);
do{
switch((int)(n/(Math.pow(10, i-1)))){
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;
case 0:System.out.print("ling");break;
}
n =(int)(n%Math.pow(10, i-1));
i --;
if(i>0)
{
System.out.print(" ");
}
}while(i>0);
}
private static int f(int n) {
int i =0;
do
{
n /=10;
i ++;
}while(n>0);
return i;
}
}