/*
1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^100。 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。 输入样例:
1234567890987654321123456789
输出样例:
yi san wu
*/
/*
思路:
1.字符串存储长达100位的"数字",解决空间放不下问题;
2.对各位数字累加求和,注意char转int,ASCII表中48:'0';65:'A';97:'a'
3.输出时,对最后一个数字拼音字符串的多余空格,可以用比较巧妙的办法解决:字符串数组的该位置为'\0';
4.运用好头文件<string.h>中常用的【字符串数组】的处理函数:
strcpy(字符串数组1,字符串数组2);
strncpy(字符串数组1,字符串数组2, len); strcmp(字符串数组1,字符串数组2);//0:相等;1:字符串数组1>字符串数组2;-1:字符串数组1<字符串数组2;
strncmp(字符串数组1,字符串2, len); strcat((字符串数组1,字符串2)); strupr(字符串数组数组);//转大写
strlwr(字符串数组);//转小写 strlen(字符串数组);//求字符串长度
*/
#include <iostream>
#include <string.h>
using namespace std; const int MAX_LENGTH = 100;
char str[1000]; int calculate(char chs[], int len){
int num = 0;
for(int i=0;i<len;i++){
num += ((int)chs[i]) - 48;
}
return num;
} void print(int x){
static int tmp;
static char pinyin[1000];
for(;x != 0;){
tmp = x%10;
x /= 10;
switch(tmp){
case 1: strcpy(pinyin, "yi ");break;
case 2: strcpy(pinyin, "er ");break;
case 3: strcpy(pinyin, "san ");break;
case 4: strcpy(pinyin, "si ");break;
case 5: strcpy(pinyin, "wu ");break;
case 6: strcpy(pinyin, "liu ");break;
case 7: strcpy(pinyin, "qi ");break;
case 8: strcpy(pinyin, "ba ");break;
case 9: strcpy(pinyin, "jiu ");break;
case 0: strcpy(pinyin, "ling ");break;
}
strcat(pinyin, str);
strcpy(str, pinyin);
}
} int main(){
char number_str[MAX_LENGTH];
int position;
char tmp;
for(position=0;position<MAX_LENGTH;){
scanf("%c", &tmp);
if(tmp != '\n'){
number_str[position++] = tmp;
} else
break;
}
print(calculate(number_str, position));
str[strlen(str) - 1] = '\0';//经典:删除末尾空格
printf("%s", str);
}

  

[C++]PAT乙级1002.写出这个数(20/20)的更多相关文章

  1. PAT乙级 1002. 写出这个数 (20)

    1002. 写出这个数 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入一个自然数n,计算其各位数字 ...

  2. PAT 乙级 1002.写出这个数 C++/Java

    1002 写出这个数 (20 分) 题目来源 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n ...

  3. PAT乙级1002. 写出这个数 (20)

    读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...

  4. PAT 乙级 -- 1002 -- 写出这个数

    题目: 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字 ...

  5. PAT 乙级 1002. 写出这个数 (20)(C语言描述)

    读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...

  6. 【PAT】1002. 写出这个数 (20)

    1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式 ...

  7. PAT Basic 1002 写出这个数 (20 分)

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1. 输出格式: 在一行内输出 n 的 ...

  8. PAT (Basic Level) Practice 1002 写出这个数 分数 20

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10100. 输出格式: 在一行内输出 ...

  9. PAT (Basic Level) Practice (中文)1002 写出这个数 (20 分)

    题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384 #include <iost ...

随机推荐

  1. angular与vue的应用对比

    因为各种笔试面试,最近都没时间做一些值得分享的东西,正好复习一下vue技术栈,与angular做一下对比. angular1就跟vue比略low了. 1.数据绑定 ng1 ng-bind,{{ sco ...

  2. POJ--1797 Heavy Transportation (最短路)

    题目电波: POJ--1797 Heavy Transportation n点m条边, 求1到n最短边最大的路径的最短边长度 改进dijikstra,dist[i]数组保存源点到i点的最短边最大的路径 ...

  3. BZOJ 1143: [CTSC2008]祭祀river(最大独立集)

    题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1143 一句话题意:给一个DAG(有向无环图),求选出尽量多的点使这些点两两不可达,输出点个 ...

  4. Git设置彩色输出

    彩色输出 git config --global color.status auto git config --global color.diff auto git config --global c ...

  5. CF341E Candies Game

    题目链接 题意 有\(n\)个盒子,第\(i\)个盒子里面有\(a_i\)个糖果.每次选择两个盒子\(i,j\),假设\(a_i \le a_j\).然后从第\(j\)个盒子中拿出\(a_i\)个糖果 ...

  6. vcftools报错:Writing PLINK PED and MAP files ... Error: Could not open temporary file.解决方案

    一般来说有两种解决方案. 第一种:添加“--plink-tped”参数: 用vcftools的“--plink”参数生成plink格式文件时,小样本量测试可以正常生成plink格式,用大样本量时产生W ...

  7. NCBI通过氨基酸位置查看相邻SNP

    进入NCBI网站 在SNP的搜索框中输入SNP位点,比如“rs52811957” 在弹出的对话框中选择“Gene View” 进入以后会显示该变异相邻SNP.原始氨基酸.变异后的氨基酸.positio ...

  8. c#的一些快捷键

    ctrl+c+s 外加代码 F12 转到定义 ctrl+F5调试 一些补全命令 svm Main函数的补全命令 prop 属性的补全命令

  9. AT2165 Median Pyramid Hard 二分答案 脑洞题

    无论再来多少次也不可能想到的写法. 二分一个最小的顶端值\(k\),大于设为\(1\)小于等于设为\(0\),可以证猜出来(你跟我说这可以?)如果存在两个连在一起的0/1那么它们会一直往上跑,还可以很 ...

  10. C++学习之回调函数

    回调函数: 通过函数指针进行调用的函数. 回调函数不是由实现方进行调用,而是将函数指针传入,在特殊条件或者状态下进行触发调用. 譬如: 在自定义按钮控件时,当点击按钮,触发点击事件,调用指定函数. 注 ...