PAT乙级1002. 写出这个数 (20)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:1234567890987654321123456789输出样例:
yi san wu
【总结】:
1.正常输入的话,加起来的总值是不会大于900的,所以最多就只有三位。
2.一共有6个测试点,据我推测:
测试点0和值为三位数。
测试点1和值为三位数且十位为0。
测试点2345和值都为一位数。
测试样例里没有0。
#include <stdio.h> int main() { char a[128]; int sum=0; scanf("%s",&a); char *p=a; while(*p!='\0'){ sum+=(*p-'0'); p++; } char num[10][6]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; if(sum>=0&&sum<1000){ if(sum/100!=0) printf("%s %s %s",num[sum/100],num[sum/10%10],num[sum%10]); else if(sum/10%10==0) printf("%s",num[sum%10]); else printf("%s %s",num[sum/10%10],num[sum%10]); } return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步