PAT 1005

来源:互联网 发布:java path环境变量设置 编辑:程序博客网 时间:2024/06/01 08:55

题意:输入一个小于等于100位的数字,累计各位之和,然后用英文逐位表示,两个单词之间空一格

思路:水题

代码:

#include<stdio.h>#include<string.h>int putnumber(int n) {switch (n){case 0:printf("zero");break;case 1:printf("one");break;case 2:printf("two");break;case 3:printf("three");break;case 4:printf("four");break;case 5:printf("five");break;case 6:printf("six");break;case 7:printf("seven");break;case 8:printf("eight");break;case 9:printf("nine");break;default:break;}return 0;}int main() {int  sum=0, digit[3005];char N[3005];scanf("%s", N);int len = strlen(N);for (int i = 0; i < len; i++) {sum += N[i] - '0';}int k = 0;if (sum == 0) {printf("zero");}else{while (sum != 0) {digit[k++] = sum % 10;sum /= 10;}for (int i = k - 1; i >= 0; i--) {putnumber(digit[i]);if (i != 0) {printf(" ");}}}return 0;}
注:用数组直接储存直接判断输出的方法更快。

0 0