1002. 写出这个数 (20)

来源:互联网 发布:windows我的电脑图标 编辑:程序博客网 时间:2024/06/06 03:54

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

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100

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

输入样例:
1234567890987654321123456789
输出样例:

yi san wu

#include<cstdio>
#include<iostream>
#include<cstring> 
using namespace std;
char a[10000];
int b[10000];
int shu(int n)
{
if(n==1) cout<<"yi";
if(n==2)cout<<"er";
if(n==3)cout<<"san";
if(n==4)cout<<"si";
if(n==5)cout<<"wu";
if(n==6)cout<<"liu";
if(n==7)cout<<"qi";
if(n==8)cout<<"ba";
if(n==9)cout<<"jiu";
if(n==0)cout<<"ling"; 
}
int main()
{
   int i,len,sum=0,weishu,ge,shi,bai,qian;
    cin>>a;
    len=strlen(a);
    for(i=0;i<len;i++)
    {
    b[i]=a[i]-'0';
    sum+=b[i];
}
    weishu=sum/10;
    if(weishu==0)
    {
    shu(sum);
}
    if(weishu>=1&&weishu<10)
    {
    shi=sum/10;
    ge=sum%10;
    shu(shi);
    cout<<" ";
    shu(ge);
}
if(weishu>=10&&weishu<99)
{
bai=sum/100;
shi=(sum-bai*100)/10;
ge=sum%10;
shu(bai);
cout<<" ";
shu(shi);
cout<<" ";
shu(ge);
}
if(weishu>=99)
{
qian=sum/1000;
bai=(sum/100-qian*10);
shi=(sum/10-qian*100-bai*10);
ge=sum%10;
shu(qian);
cout<<" ";
shu(bai);
cout<<" ";
shu(shi);
cout<<" ";
shu(ge);
}
return 0;
}

0 0
原创粉丝点击