您的位置:首页 > 其它

PAT_Basic --- 1002

2016-03-05 13:04 211 查看
PAT_Basic — 1002

**

1002. 写出这个数 (20)

**

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

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

#include <iostream>
#include <string>

using namespace std;

void main(){
char num[101] = {};
char **name;
name = (char**)malloc(sizeof(char*)* 10);
name[0] = (char*)malloc(sizeof(char)* 10 * 5);
for (int i = 0; i < 10; i++){
name[i] = name[i - 1] + 5;
}

name[0] = "ling";
name[1] = "yi";
name[2] = "er";
name[3] = "san";
name[4] = "si";
name[5] = "wu";
name[6] = "liu";
name[7] = "qi";
name[8] = "ba";
name[9] = "jiu";

cin >> num;

//char zero = '0';
//int a = *num[1] - zero;
//cout << a;
int count = 0;
for (int i = 0; i < 101; i++){
if (num[i] == '\0')
break;
count += (num[i]) - '0';
}
cout << count << endl;

char num_str[4] = {};
sprintf(num_str, "%d", count);
for (int i = 0; i < 4; i++){
if (num_str[i] == '\0')
break;

int tmp = num_str[i] - '0';
cout << name[tmp] << " ";
}
cout << endl;
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: