解题思路:主要是字符串的处理,首先求和,然后把求得的数字转化为数字,再用对应的数字映射导对应的拼音进行输出。
C/C++版本
#include<cstdio>
#include<cstring>
char stt[][8]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int main(){
char str[110]={0};
scanf("%s",str);
int len=strlen(str);
int sum=0;
for(int i=0;i<len;i++){
sum+=str[i]-'0';
}
int ss[110]={0};
int k=0;
do{
ss[k++]=sum%10;
sum/=10;
}while(sum!=0);
for(int i=k-1;i>=0;i--){
printf(i==k-1?"%s":" %s",stt[ss[i]]);
}
return 0;
}
Java版本
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String str = new String();
Scanner in = new Scanner(System.in);
str = in.nextLine();
int sum = 0;
for(int i = 0; i < str.length(); i++) {
sum += str.charAt(i) - '0';
}
Map mp = new HashMap();
mp.put(1, "yi" );
mp.put(2,"er");
mp.put(3, "san" );
mp.put(4,"si");
mp.put(5, "wu" );
mp.put(6,"liu");
mp.put(7, "qi" );
mp.put(8,"ba");
mp.put(9, "jiu" );
mp.put(0,"ling");
str ="" + sum;
int flag = 0;
for(int i = 0; i < str.length(); i++) {
int k = str.charAt(i) - '0';
if(flag == 0) System.out.print(mp.get(k));
else System.out.print(" " + mp.get(k));
flag++;
}
}
}

本文介绍了一个简单的程序设计案例,该程序将输入的数字字符串转换为对应的数字总和,并进一步将总和数字转换为其对应的中文拼音。使用C/C++与Java实现,包括字符串处理、数字求和及拼音映射输出等功能。

6887

被折叠的 条评论
为什么被折叠?



