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

问题描述

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

自己的思路是4位数分一组,一组一组地输出,算法很无脑暴力,代码也很冗长,技术有限,还没有找出其它更好的算法

源代码:

#include

#include

#include

using namespace std;

int main()

{

int n,i,m,count=0,mark=3;

//mark记录第一组首个不为0的数字的位置

char *ch1[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu","shi"};

char *ch2[]={"shi","bai","qian","wan","yi"};

int num[5][4];

//4位一组,存储从个位开始的每一位数

int j[5][4];

//记录每组第一个不为0的数字的位置;

memset(num,-1,sizeof(num));

memset(j,-1,sizeof(j));

cin>>n;

for(i=0;i<5,n>0;i++)

{

for(m=0;m<4,n>0;m++)

{

num[i][m]=n%10;

n/=10;

count++;

}

}

int p,q;

p=(count)/4;

q=count%4;

if(q!=0)

{

p++;

}

else

{

q=4;

}

//p为组数,q表示最高位数字在该组的位置

for(i=0;i<5;i++)

{

for(m=0;m<4;m++)

{

if(num[i][m]!=0&&num[i][m]!=-1)

{

j[i][m]=0;

break;

}

}

}

for(i=0;i<4;i++)

{

if(num[0][i]!=0&&num[0][i]!=-1)

{

mark=i;

break;

}

}

for(i=4;i>=0;i--)

{

int judge=0;

for(m=3;m>=0;m--)

{

if(num[i][m]!=0&&num[i][m]!=-1)

{

judge=0;

//遇到非0时,judge重置为0,表示可输出“ling”

if(i!=p-1||m!=q-1||num[i][m]!=1||q!=2)

{

cout<

}

//排除首位出现“yi shi”的情况

if(m!=0)

{

cout<

}

if(j[i][m]==0&&i!=0)

{

cout<

}

}

if(num[i][m]==0)

{

if(i!=0&&m!=0&&judge==0)

{

cout<

judge=1;

}

//非第一组的"ling"的输出

if(i==0&&judge==0&&m>mark)

{

cout<

judge=1;

}

//第一组"ling"的输出

}

}

}

return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现安卓里边下边播的播放器(源码公开)

一、前言&#xff1a; 前段时间弄了一款安卓电视盒子的远程遥控输入法APP&#xff1a;TVRemoteIME&#xff0c;此APP实现了远程跨屏的输入、遥控和应用管理功能。 最近发现盒子上要播放电影资源除了买APP会员之外&#xff0c;能直接免费播放电影的第三方APP越来越少了&#xff…

2020诺奖预测出炉!一位华人学者入选

图片来源&#xff1a;nobelprize.org文章来源&#xff1a;科睿唯安&#xff08;Clarivate Analytics&#xff09;、科研圈9月23日&#xff0c;拥有Web of Science、InCites等著名论文及期刊索引平台的科睿唯安公司&#xff08;Clarivate Analytics&#xff09;宣布了2020年“引…

java的oauth2.0_[转]Java的oauth2.0 服务端与客户端的实现

oauth原理简述oauth本身不是技术&#xff0c;而是一项资源授权协议&#xff0c;重点是协议&#xff01;Apache基金会提供了针对Java的oauth封装。我们做Java web项目想要实现oauth协议进行资源授权访问&#xff0c;直接使用该封装就可以。image.png整个开发流程简述一下&#x…

数学突破奖:告诉你一个真实的数学研究

文章来源&#xff1a;科学松鼠会科学是目前人类探知客观世界最好的方式。尽管投入科学不能一蹴而就地得到切实有用的成果&#xff0c;但长远来看却是技术发展最好的动力源。与技术开发不同&#xff0c;对科学的投入更像是公益活动&#xff0c;因为科学研究得到的成果属于全人类…

java 获取当前月份减1_java String 日期 转成 Date, 月份减1

ainiyanyan13142007-03-30 22:391 编写applet 程序的页面输出 红色的 "hello would !"2 请编写application 计算并 "12...2008"的结果3 找出两个字符串中所有共同的子字符串4 将碾转相除法求两个整数的最大公因数gcd(a,b)用递归方法实现.(1) 求两个整数a,b…

重磅!“全脑介观神经联接图谱”大科学计划中国工作组成立!

来源&#xff1a;上海科技9月27日下午&#xff0c;“全脑介观神经联接图谱”大科学计划启动前期工作座谈会在上海市召开&#xff0c;本次会议明确了该计划的推进路径&#xff0c;宣布了中国工作组的成立&#xff0c;并就该计划的具体实施思路和举措进行研讨。座谈会上&#xff…

算法训练 Pollution Solution(计算几何)

问题描述作为水污染管理部门的一名雇员&#xff0c;你需要监控那些被有意无意倒入河流、湖泊和海洋的污染物。你的其中一项工作就是估计污染物对不同的水生态系统&#xff08;珊瑚礁、产卵地等等&#xff09;造成的影响。你计算所使用的模型已经在图1中被说明。海岸线&#xff…

MEMS传感器前景光明,国内产业如何创新破局

来源&#xff1a;MEMS当前&#xff0c;在行业技术不断发展和成熟的加持下&#xff0c;物联网已经成为世界新一轮科技革命和产业变革的重要驱动力。顺应着万物互联时代的到来&#xff0c;作为物联网先行技术、感知层的代表——传感器的市场需求急剧攀升&#xff0c;所扮演的角色…

python3层装饰器_python三层装饰器python字符串,数值计算

Python是一种面向对象的语言&#xff0c;但它不像C一样把标准类都封装到库中&#xff0c;而是进行了进一步的封装&#xff0c;语言本身就集成一些类和函数&#xff0c;比如print&#xff0c;list&#xff0c;dict etc. 给编程带来很大的便捷Python 使用#进行单行注释&#xff0…

2.6 线程优先级

package 第二章.线程优先级;/** * Created by zzq on 2018/1/18. */public class 线程优先级 { public static class T1 extends Thread{ Override public void run() { System.out.println("-------"); } } public static…

清华大学教授:唐杰——深度分析:人工智能的下个十年

来源&#xff1a;图灵人工智能唐杰教授从人工智能发展的历史开始&#xff0c;深入分析人工智能近十年的发展&#xff0c;阐述了人工智能在感知方面取得的重要成果&#xff0c;尤其提到算法是这个感知时代最重要、最具代表性的内容。重点讲解了 BERT、ALBERT、MoCo2 等取得快速进…

java去掉mongodb日志_MongoDB日志文件过大的解决方法 清理

MongoDB日志文件过大的解决方法2016年05月09日 14:43:11 jjwen 阅读数 1261MongoDB的日志文件在设置 logappendtrue 的情况下&#xff0c;会不断向同一日志文件追加的&#xff0c;时间长了&#xff0c;自然变得非常大。解决如下&#xff1a;(特别注意&#xff1a;启动的时候必须…

Solr 访问 403 错误

把 Solr 基础环境搭建好后访问发现会出现 403 错误&#xff1a; 解决方法&#xff1a; 找到自己 Tomcat 目录下的 solr &#xff0c;找到 ...\solr\WEB-INF\web.xml&#xff0c;然后把 169 - 183行注释&#xff0c;然后重启服务再次访问就 OK 啦。 访问成功界面&#xff1a; 转…

java数组的四个要素_Java零基础系列教程04Java数组

配套视频教程问题Java考试结束后&#xff0c;老师给张浩分配了一项任务&#xff0c;让他计算全班(30人)的平均分int stu1 95;int stu2 89;int stu3 79;int stu4 64;int stu5 76;int stu6 88;……avg (stu1stu2stu3stu4stu5…stu30)/30;数组数组是一个变量&#xff0c;存…

多页面webpack配置

工程结构如下 dev-serverconst config require(../config); const express require(express); const path require(path); const fs require(fs); // const faviconrequire(serve-favicon); const exec require(child_process).exec; process.env.NODE_ENV config.dev.e…

深度 | 量子计算技术的研究现状与未来

来源&#xff1a;本源量子导读1900年 Max Planck 提出“量子”概念&#xff0c;宣告了“量子”时代的诞生。科学家发现&#xff0c;微观粒子有着与宏观世界的物理客体完全不同的特性。宏观世界的物理客体&#xff0c;要么是粒子&#xff0c;要么是波动&#xff0c;它们遵从经典…

exsist什么意思_exist什么意思_通达信EXIST什么意思

matlab中的exist是什么意思exist用来判断变量或函数是否存在&#xff1a; exist Check if variables or functions are defined.exist(A) returns:0 if A does not exist1 if A is a variable in the workspace2 if A is an M-file on MATLABs search path. It also returns …

拥有“上帝视角”是怎样的体验?高分多模卫星首批影像成果发布

本文转载自“中国的航天”&#xff0c;原标题《拥有“上帝视角”是怎样的体验&#xff1f;高分多模卫星首批影像成果发布》&#xff0c;作者 | 杨璐9月29日&#xff0c;国家航天局发布了高分辨率多模综合成像卫星&#xff08;以下简称“高分多模卫星”&#xff09;首批20余幅亚…

1.2 - 列表练习题

1 1.创建列表2 >>> names [old_driver, rain, jack, shanshan, peiqi, black_girl]3 >>> names4 [old_driver, rain, jack, shanshan, peiqi, black_girl] 5 6 2.插入alex7 >>> names.insert(-1,alex)8 >>> names9 [old_driver, rain, ja…

java 工程ssl配置_HTTPS_SSL配置的步骤以及原理说明

1、单向认证&#xff0c;就是传输的数据加密过了&#xff0c;但是不会校验客户端的来源2、双向认证&#xff0c;如果客户端浏览器没有导入客户端证书&#xff0c;是访问不了web系统的&#xff0c;找不到地址&#xff0c;想要用系统的人没有证书就访问不了系统HTTPS概念方法/步骤…