PTA第二个编程题总结
7-1 币值转换 (20 分)
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。
输入格式:
输入在一行中给出一个不超过9位的非负整数。
输出格式:
在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。
输入样例1:
813227345
输出样例1:
iYbQdBcScWhQdBeSf
输入样例2:
6900
输出样例2:
gQjB
实验代码:
#include <stdio.h>
int main(void)
{
int a,b,c,d,e,n,i,j,m,N,k;
scanf("%d",&N);
a=b=N;
if(a==0){
printf("a");
}
for(i=0;a>0;i++){
a=a/10;
}
c=i;
for(i;i>0;i--){
n=1;
e=0;
for(m=i-1;m>0;m--){
n=n*10;
}
a=b/n;
b=b-a*n;
switch(a){
case 0: printf("a"); break; case 1: printf("b"); break; case 2: printf("c"); break;
case 3: printf("d"); break; case 4: printf("e"); break; case 5: printf("f"); break;
case 6: printf("g"); break; case 7: printf("h"); break; case 8: printf("i"); break;
case 9: printf("j"); break;
}
switch (i) {
case 2: printf("S"); break; case 3: printf("B"); break; case 4: printf("Q"); break;
case 5: printf("W"); break; case 6: printf("S"); break; case 7: printf("B"); break;
case 8: printf("Q"); break; case 9: printf("Y"); break;
}
j=0;
for(d=b;d>0;j++){
d=d/10;
}
j=i-j-1;
if(c<9&&i>5&&j>2){
printf("W");
}
j=0;
for(d=b;d>0;j++){
d=d/10;
}
if(j!=0){
e=i-j-1;
}else{
i=0;
}
if(e>3&&i>4||e==2&&i<4){
printf("a");
i=j+1;
}else if(e==2&&i>1){
printf("a");
i=i-2;
}else if(j<4&&c<9&&j!=0&&e!=1&&e!=0){
printf("a");
i=j+1;
}else if(e==1){
printf("a");
i=j+1;
}else{
i=j+1;
}
}
return 0;
}
实验思路:
先记录输出的数的位数,利用位数来确定输出的大写字母,运用循环来进行从高位数到低位数
进行判断要输出的小写字母,用条件语句来判断特殊情况。
实验错误:

当时没有想到位数小于9的情况下中间位数存在连续多个0的输入的考虑。
实验正确:
PTA第二个编程题总结的更多相关文章
- 面向对象程序设计--Java语言第二周编程题:有秒计时的数字时钟
有秒计时的数字时钟 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成.但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做 ...
- 数据结构与算法分析C++表述第二章编程题
把昨天看的第二章巩固一下,做一做编程习题. 2.6: 第一天交2元罚金,以后每一天都是前一天的平方,第N天罚金将是多少? 这个题目和2.4.4-3介绍的幂运算基本一致.若按相同的递归思路分析,比那个问 ...
- 『CUDA C编程权威指南』第二章编程题选做
第一题 设置线程块中线程数为1024效果优于设置为1023,且提升明显,不过原因未知,以后章节看看能不能回答. 第二题 参考文件sumArraysOnGPUtimer.cu,设置block=256,新 ...
- 慕课零基础学java语言翁恺老师——第二周编程题
1.时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果 ...
- 《python语言程序设计》_第二章编程题
2.1 程序: Celsius=eval(input("Enter a degree in Celsius:"))#输入摄氏度的值Celsiusfahrenheit =(9/5)* ...
- PTA第一个编程题总结
7-1 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数 ...
- Java程序设计(2021春)——第二章课后题(选择题+编程题)答案与详解
Java程序设计(2021春)--第二章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第二章课后题(选择题+编程题)答案与详解 第二章选择题 2.1 面向对象方法的特性 ...
- 京东校招笔试(C++方向)编程题
这次笔试是今年校招我参加的第一次笔试..出了很多状况,基础知识不扎实,导致选择题耽误了太多时间,导致后面的题目没做完,编程题也没有在 时间内写出来,基本没有面试机会了.不过我继续研究第二个编程题,在1 ...
- pta 编程题20 旅游规划
其它pta数据结构编程题请参见:pta 题目 这个最短路径问题只需要求两点之间的最短路径,因而在Dijikstra算法中当求出目标点的最短路径之后跳出循环即可. #include <iostre ...
随机推荐
- Windows Server 2003下DHCP服务器的安装与简单配置图文教程
在前面的内容中,我们提到了DHCP这个词,为什么要用到DHCP呢,企业里如果有100台计算机,那样,我们一台台的进行配置Ip,我想还是可以的,因为少嘛,如果成千上万台,那我们也去一台台的配置,我相信这 ...
- 用scrapy框架爬取映客直播用户头像
1. 创建项目 scrapy startproject yingke cd yingke 2. 创建爬虫 scrapy genspider live 3. 分析http://www.inke.cn/ ...
- oracle多个单引号的处理
Oracle多个单引号的处理 在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义.单引号的使用是就近配对,即就近原则.而在单引号充当转义角色时相对不好理解. 下面转载 1.从第二个 ...
- 怎么下载geventwebsocket
pip install gevent-websocket sudo pip install gevent-websocket
- cmd返回上一级和根目录
https://jingyan.baidu.com/article/066074d6154cf4c3c21cb013.html
- 微信小程序本地的域名“不在以下request合法域名列表中”错误处理方法
- 30、git 使用
Git 一. 目标 (一) Git的操作 二. Git和SVN的区别 (一) SVN优缺点 1. 优点: (1) 管理方便,逻辑明确 (2) 易于管理,集中式服务器更能保证安全性 (3) 代码一致性非 ...
- elk-插件(head、X-pack)(五)
一.修改ES配置,允许REST跨源操作ES服务器,添加以下2个配置,并重启ES. http.cors.enabled: true #如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST ...
- leetcode-Evaluate the value of an arithmetic expression in Reverse Polish Notation
leetcode 逆波兰式求解 Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid ope ...
- Laravel开发采坑系列问题
2017年12月22日17:40:03 不定时更新 版本5.4.X 一下是可能会遇到的坑 1,必须的写路由转发才能访问控制器,当然你可以自动路由访问,但是需要些匹配规则,其实还是转发了 好多人讨论过自 ...