L1-007 念数字
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出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
C语言参考代码:
#include<stdio.h>
#include<string.h>
int main()
{
int i,len;
char num[100];
gets(num); //读入数字字符串
len=strlen(num); //得到字符数组的长度,用于后续的for循环
for (i=0;i<len;i++) {
switch(num[i]) {
case '-':
printf("fu");break;
case '0':
printf("ling");break;
case '1':
printf("yi");break;
case '2':
printf("er");break;
case '3':
printf("san");break;
case '4':
printf("si");break;
case '5':
printf("wu");break;
case '6':
printf("liu");break;
case '7':
printf("qi");break;
case '8':
printf("ba");break;
case '9':
printf("jiu");break;
default:
break;
}
if (i!=len-1) {
printf(" ");
}
}
return 0;
}
C++参考代码:
#include<iostream>
using namespace std;
void du(int n){
switch(n){
case 0:cout<<"ling";break;
case 1:cout<<"yi";break;
case 2:cout<<"er";break;
case 3:cout<<"san";break;
case 4:cout<<"si";break;
case 5:cout<<"wu";break;
case 6:cout<<"liu";break;
case 7:cout<<"qi";break;
case 8:cout<<"ba";break;
case 9:cout<<"jiu";break;
}
}
int main(){
int x,i,a,b;
cin>>x;
if(x<0){
cout<<"fu ";
a=-x;
}
else a=x;
int k=-1,c[10];
while(a>0)
{
b=a%10;
a=a/10;
k++;
c[k]=b;
}
du(c[k]);
for(i=k-1;i>=0;i--){
cout<<" ";
du(c[i]);
}
return 0;
}
Python参考代码:
num = list(input())
read = ["ling","yi","er","san","si","wu","liu","qi","ba","jiu"]
if num[0] == "-":# 读负号
print("fu",end='')
else:
print("{}".format(read[int(num[0])]),end="")
num.pop(0)
for i in num:
print(" {}".format(read[int(i)]),end="")
Golang参考代码:
package main
import "fmt"
func main(){
var s,t string
fmt.Scan(&s)
t=""
for _,st:= range s{
switch st{
case 48:
t+="ling "
case 48+1:
t+="yi "
case 48+2:
t+="er "
case 48+3:
t+="san "
case 48+4:
t+="si "
case 48+5:
t+="wu "
case 48+6:
t+="liu "
case 48+7:
t+="qi "
case 48+8:
t+="ba "
case 48+9:
t+="jiu "
default:
t+="fu "
}
}
fmt.Printf(t[:len(t)-1])
}