讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這里保證n小於10^100^。
輸出格式:在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最后一個拼音數字后沒有空格。
輸入樣例:
1234567890987654321123456789
輸出樣例:
yi san wu
#include <stdio.h> #include <string.h> int main(){ char c[101]; char pinyin[][9]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; int a[10]; int i,n=0,t=0; gets(c);//讀入一串字符。這里實際上是數據,但是由於是char類型的,由ASCII碼可以進行轉換 for(i=0;i<strlen(c);i++) n=n+c[i]-'0';//當成字符類型讀入時轉換成數字類型要減去0的ASCII碼 while(n!=0){ a[t]=n%10;//用a[]數組存儲n由低到高的每個數字 n=n/10; t++;} printf("%s",pinyin[a[t-1]]);//數字到拼音的轉換,拼音由二維數組存起來的,注意最高位的索引值是t-1而不是t for(i=t-2;i>=0;i--) printf(" %s",pinyin[a[i]]); return 0; }