问题描述
  Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。
  比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念出来的。
  所以,他迫切地需要一个系统,然后当他输入12 3456 7009时,会给出相应的念法:
  十二亿三千四百五十六万七千零九
  用汉语拼音表示为
  shi er yi san qian si bai wu shi liu wan qi qian ling jiu
  这样他只需要照着念就可以了。
  你的任务是帮他设计这样一个系统:给定一个阿拉伯数字串,你帮他按照中文读写的规范转为汉语拼音字串,相邻的两个音节用一个空格符格开。
  注意必须严格按照规范,比如说“10010”读作“yi wan ling yi shi”而不是“yi wan ling shi”,“100000”读作“shi wan”而不是“yi shi wan”,“2000”读作“er qian”而不是“liang qian”。
输入格式
  有一个数字串,数值大小不超过2,000,000,000。
输出格式
  是一个由小写英文字母,逗号和空格组成的字符串,表示该数的英文读法。
样例输入
1234567009
样例输出
shi er yi san qian si bai wu shi liu wan qi qian ling jiu

两段代码都有小漏洞,经测试当亿位和万位为零时,总是多一个ling,可以测试2020202020

#include<stdio.h>
#include<string.h>
int main()
{char a[100];int i,j,k,l;char b[20][10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};char c[20][10]={"","","shi","bai","qian","wan","shi","bai","qian","yi","shi"};gets(a);l=strlen(a);for(i=0;i<l;i++){j=a[i]-48;if(j==0){if(i<l-1)if(a[i+1]!=48)printf("%s ",b[j]);}elseif((l-i==2||l-i==6||l-i==10)&&j==1)printf("%s ",c[l-i]);else if(a[i-1]==48&&j==1)printf("%s ",c[l-i]);else printf("%s %s ",b[j],c[l-i]);}printf("\n");return 0;
}
#include<stdio.h>
int main()
{char *num[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};char *wei[] = {"shi", "bai", "qian", "wan", "yi"};char *str[20];int i, j, k, n, l[2] = {0};i = 0;j = 0;scanf("%d", &n);while(n > 0){k = n % 10;n /= 10;if(k > 0){if(i > 0){if(i >= 4 && !l[i / 4 - 1]){l[i / 4 - 1] = 1;str[j++] = wei[i / 4 + 2];}if(i % 4 != 0)str[j++] = wei[i % 4 - 1];}str[j++] = num[k];}else if(j > 0 && str[j - 1] != num[0]){str[j++] = num[0];}i++;}if(!(str[j - 1] == "yi" && j > 1 && str[j - 2] == "shi"))printf("%s ", str[j-1]);for(i = j - 2; i >= 0; i--)printf("%s ", str[i]);return 0;
}

蓝桥杯 基础练习 数的读法相关推荐

  1. 蓝桥杯基础练习-数的读法

    蓝桥杯基础练习-数的读法 问题描述 Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿. 比如说,在对学 ...

  2. 蓝桥杯练习系统数的读法java_数的读法(蓝桥杯)

    问题描述 Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿. 比如说,在对学生讲解第123456700 ...

  3. 蓝桥杯练习系统数的读法java_蓝桥杯 练习系统 数的读法 Java

    问题描述 Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿. 比如说,在对学生讲解第123456700 ...

  4. 蓝桥杯基础试题练习小结(vip)(二)

    试题 基础练习 矩形面积交 问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行, ...

  5. 蓝桥杯试题 基础练习 数的读法(c++ Python)

    试题 基础练习 数的读法 资源限制 时间限制:1.0s   内存限制:512.0MB 问题描述 Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它 ...

  6. 蓝桥杯基础练习~芯片测试FJ的字符串Sine之舞数的读法完美的代价

    试题 基础练习 芯片测试 提交此题 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多. 每个芯片都能用来测试其他芯片.用好芯 ...

  7. 蓝桥杯-基础练习-特殊回文数

    蓝桥杯-基础练习-特殊回文数 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输 ...

  8. 试题 基础练习 数的读法

    试题 基础练习 数的读法 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从 ...

  9. 蓝桥杯基础-【切面条】不用画图的解题思路

    我们先来看[切面条]的题目: 一根高筋拉面,中间切一刀,可以得到2根面条. 如果先对折1次,中间切一刀,可以得到3根面条. 如果连续对折2次,中间切一刀,可以得到5根面条. 那么,连续对折10次,中间 ...

最新文章

  1. 互联网高薪的原因、现状、未来,还值不值得进来?
  2. 心得丨深度学习的技术原理、迭代路径与局限
  3. linux6用户t密码,linux系统 用户和组管理类命令的使用方法
  4. 【hadoop2.6.0】利用Hadoop的 Java API
  5. 使用Java和JSF构建一个简单的CRUD应用
  6. 没有串口,如何打印单片机调试信息?
  7. java要频繁调用容器时_Java知识点梳理
  8. 初学者web前端知识点--HTML部分
  9. boot空间不足 linux,linux——boot空间不足
  10. mui刷新不显示动画_144Hz刷新率和60Hz有啥区别?体验有何不同?这里全告诉你
  11. 【零基础学Java】—Collections集合工具类(四十二)
  12. SpringBoot中是如何创建WebServer的?
  13. ROS机器人操作系统学习记录
  14. Excel文件减肥和加速
  15. centos7 | All matches were filtered out by modular filtering for argument: mysql-community-server
  16. python爬取整个网页,教师节不知道给老师送什么?
  17. java_猜拳小游戏——流之奥义
  18. elastic APM 深入测试 一 (无嵌套调用的分布式微服务监控)
  19. indesign中怎么在冒号后面ctrl_InDesign不完全使用指南
  20. 讲讲多拨的额外骚操作(多拨附加教程)

热门文章

  1. 用自动化构建工具增强你的工作流程——gulp
  2. 【转载】Java文件编码自动转换工具类
  3. 完美!解决无法启动承载网络的问题
  4. DevOps是敏捷在软件开发团队的另一应用
  5. Python 命令行非阻塞输入
  6. 微软CRM记录列表每页显示超过250个记录解决办法
  7. SAP FI配置步骤
  8. 关于练习美剧听写中碰到的问题
  9. 谈一谈我对于目前国人对于EXTJS的错误看法
  10. Ext的组件模型印象