【PAT B1002】 写出这个数
发布日期:2021-06-29 11:18:05 浏览次数:3 分类:技术文章

本文共 835 字,大约阅读时间需要 2 分钟。

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

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10^​100。

输出格式:

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

思路:关键在于建立出拼音和数字之间的对应关系,即字符指针数组。

#include 
//用字符指针数组记录1到9对应的拼音const char *pinyin[10] = {
"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};int main() {
char s; int sum = 0; //逐个读入,计算数字之和 while ((s = getchar()) != '\n') {
sum += (s - '0'); } //用数组记录sum每个位置上的数字,注意是先记录个位再到高位。 int a[10]; int i = 0; while (sum) {
a[i] = sum % 10; sum /= 10; i++; } i--;//多加了一次 for (; i >= 0; i--) {
//读数 if (i == 0) {
printf("%s", pinyin[a[i]]); } else {
printf("%s ", pinyin[a[i]]); } } return 0;}

转载地址:https://blog.csdn.net/zxc0074869/article/details/115213234 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【PAT B1013】 数素数
下一篇:单链表结点删除

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月08日 04时43分19秒