1002. 写出这个数 (20)

    xiaoxiao2021-03-25  69

    1002. 写出这个数 (20)

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

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

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

    输入样例: 1234567890987654321123456789 输出样例: yi san wu #include <iostream> #include <string.h> using namespace std;    //把和转化为拼音的函数; void Change(int n){     //创建字符串数组;     char *numberStr[10] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};     //递归实现 将 和 按着从高位到地位的输出;     if (n/10!=0) {         Change(n/10);//递归调用函数         cout<<" "<<numberStr[n];     }else{         cout<<numberStr[n];     } } int main() {     char str[101];     //输入一个字符串入str数组。     cin >> str;     if (!strlen(str)) {         return 0;     }     int i,sum = 0;     for (i = 0; i < strlen(str); i++) {         if (str[i]>='0' && str[i]<='9') {              sum += str[i] - '0'; //str[i]-'0' 就是数字字符的ascii码转换成数值             //比如'9'=57 因为数字的ascii码是连续的所以'9'-'0'=57-48=9          }else{             break;         }     }     if (i==strlen(str)) {         Change(sum);     }else{         return 0;     }     return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-32672.html

    最新回复(0)