题目为:
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 1。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
代码实现:
#include <iostream>
#include<algorithm>
#include<string.h>
using namespace std;
//数值超过了Int的表示范围,使用字符串处理
int main(){
//定义一个string类的数组存储和
string number;
int sum=0;
string eg[10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
char ch;//输入字符存储数字
while((ch=getchar())!=‘\n‘)
sum+=(ch-‘0‘);//减去字符‘0‘,变为Int 型,并累加
int temp=sum,count=0;
while(temp){// 计算和的位数
temp/=10;
count++;
}
//将每一位顺序存储进string数组中
for(int k=count-1;k>=0;k--){
number[k]=sum%10+‘0‘;
sum=sum/10;
}
//控制输出
for(int k=0;number[k]!=0;k++){
if(k>0)
printf(" ");
cout<<eg[number[k]-‘0‘];
}
return 0;
}
原文地址:https://www.cnblogs.com/lzdxh027/p/12252637.html
时间: 2024-11-07 21:50:51