1002. 寫出這個(gè)數(shù)

原題鏈接
寫出這個(gè)數(shù):

讀入一個(gè)自然數(shù)n,計(jì)算其各位數(shù)字之和,用漢語(yǔ)拼音寫出和的每一位數(shù)字。

輸入格式:每個(gè)測(cè)試輸入包含1個(gè)測(cè)試用例,即給出自然數(shù)n的值。這里保證n小于10^100。

輸出格式:在一行內(nèi)輸出n的各位數(shù)字之和的每一位,拼音數(shù)字間有1 空格,但一行中最后一個(gè)拼音數(shù)字后沒(méi)有空格。

輸入樣例:
1234567890987654321123456789
輸出樣例:
yi san wu

時(shí)間限制 內(nèi)存限制 代碼長(zhǎng)度限制 判題程序 作者
400 ms 65536 kB 8000 B Standard CHEN, Yue

解題思路:
建立枚舉類型或字符串?dāng)?shù)組存儲(chǔ)0~9的拼音;·考慮只創(chuàng)建一次,采用數(shù)組存儲(chǔ)·
輸入n;//0<n<=10^100,考慮到位數(shù)過(guò)大,不進(jìn)行存儲(chǔ),進(jìn)行動(dòng)態(tài)處理
每輸入一個(gè)數(shù)字,加進(jìn)和sum中;
輸出sum的每一位數(shù)字對(duì)應(yīng)的拼音;

ACCode:

//Write the number.
//Input:A nuture number n
//Output:The sum of each numbers in Pinyin.
#include <iostream>
using namespace std;
int main()
{
    char* number;
    int sum=0;
    char c;
    int n[4]={0};
    int i;
    int flag=0;
    char* pinyin[10]=
    {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
    while((c=getchar())!='\n')
    {
        sum=sum+(c-'0');
    }
    for(i=0;i<4;i++)
    {
        n[i]=sum%10;
        sum=sum/10;
    }
    while(--i+1)
    {
        if(n[i]||flag){
            if(flag)
                cout<<" ";    
            cout<<pinyin[n[i]];
            flag=1;
        }
    }
    return 0;
}

·Python代碼

n = raw_input()
sum = 0
i = 0
pinyin=['ling','yi','er','san','si','wu','liu','qi','ba','jiu']
jieguo=[]
while i<len(n):
    sum=eval('sum+'+n[i])
    i=i+1
while sum>0:
    jieguo=[pinyin[sum%10]]+jieguo
    sum = sum // 10
String=' '.join(jieguo)
print String

有疑問(wèn)?查看幫助

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容