题目链接:点击这里
题意:给定一个非负整数N,您的任务是计算N所有数字的和,并以英语输出和的每个数字。
思路:按字符串读入,计算字符串每一位的和 s s s,然后将 s s s 的每一位数字分离出来存到 d i g i t s [ ] digits[\ ] digits[ ] 数组中,利用提前打好的数字-单词映射表输出即可。
AC代码:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N = 110; char p[10][10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; char a[N]; int digits[N]; int main() { scanf("%s", a); int s = 0; for(int i = 0; a[i]; i++) s += a[i] - '0'; if(!s) { printf("%s\n", p[0]); return 0; } int cnt = 0; while(s) { digits[cnt++] = s % 10; s /= 10; } for(int i = cnt - 1; ~i; i--) printf("%s%c", p[digits[i]], i == 0 ? '\n' : ' '); return 0; }微信公众号《算法竞赛求职》,致力于详细讲解竞赛和求职所涉及到的算法原理和模板。欢迎关注,一起交流进步!
