1002. 写出这个数 (20)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:1234567890987654321123456789输出样例:
yi san wu
#include<stdio.h>
#include<string.h>
void change(char a[],int b[]){
for(int i=0;i<strlen(a);i++){
b[i]=a[i]-'0';
}
}
int main(){
char a[20][20]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
char x[20][20];
char b[1000];
int c[1000];
int result=0;
gets(b);
change(b,c);
for(int i=0;i<strlen(b);i++){
result +=c[i];
}
int j=0;
printf("%d\n",result);
while(result!=0){
int tmp = result % 10;
strcpy(x[j],a[tmp]);
j++;
result = result/10;
}j--;
while(j>=0){
if(j!=0)
printf("%s ",x[j]);
else{
printf("%s",x[j]);
}
j--;
}
}这题很简单,基本就是按照题意一路顺着做就行,注意使用到了strcpy可能会出现越界的情况,但是这里的数组都是写死的数字拼音问题不大,可以自己实现也可以用strncpy()。最后附上结果。
#include<string.h>
void change(char a[],int b[]){
for(int i=0;i<strlen(a);i++){
b[i]=a[i]-'0';
}
}
int main(){
char a[20][20]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
char x[20][20];
char b[1000];
int c[1000];
int result=0;
gets(b);
change(b,c);
for(int i=0;i<strlen(b);i++){
result +=c[i];
}
int j=0;
printf("%d\n",result);
while(result!=0){
int tmp = result % 10;
strcpy(x[j],a[tmp]);
j++;
result = result/10;
}j--;
while(j>=0){
if(j!=0)
printf("%s ",x[j]);
else{
printf("%s",x[j]);
}
j--;
}
}这题很简单,基本就是按照题意一路顺着做就行,注意使用到了strcpy可能会出现越界的情况,但是这里的数组都是写死的数字拼音问题不大,可以自己实现也可以用strncpy()。最后附上结果。
查看提交
评测结果
时间 | 结果 | 得分 | 题目 | 语言 | 用时(ms) | 内存(kB) | 用户 |
---|---|---|---|---|---|---|---|
3月15日 17:17 | 答案正确 | 20 | 1002 | C (gcc 4.7.2) | 2 | 384 | HaoYoung |
测试点
测试点 | 结果 | 用时(ms) | 内存(kB) | 得分/满分 |
---|---|---|---|---|
0 | 答案正确 | 1 | 264 | 12/12 |
1 | 答案正确 | 1 | 264 | 1/1 |
2 | 答案正确 | 2 | 384 | 1/1 |
3 | 答案正确 | 1 | 384 | 2/2 |
4 | 答案正确 | 1 | 384 | 2/2 |
5 | 答案正确 | 2 | 384 | 2/2 |