PTA第二个编程题总结】的更多相关文章

7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成“贰万叁仟壹百零捌”元.为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S.B.Q.W.Y分别代表拾.百.仟.万.亿.于是23108元应被转换输出为“cWdQbBai”元. 输入格式: 输入在一行中给出一个不超过9位的非负整数. 输出格式: 在一行中输出转换后的结果.注意“零”的用法必须符合中文习惯. 输入样例1: 813227345…
有秒计时的数字时钟 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成.但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做这个题目. 我们需要给时钟程序加上一个表示秒的Display,然后为Clock增加以下public的成员函数: public Clock(int hour, int minute, int second); 用hour, minute和second初始化时间. public void tick();…
把昨天看的第二章巩固一下,做一做编程习题. 2.6: 第一天交2元罚金,以后每一天都是前一天的平方,第N天罚金将是多少? 这个题目和2.4.4-3介绍的幂运算基本一致.若按相同的递归思路分析,比那个问题要简单,因为从1次幂开始并且指数呈2^(n-1)分布,即1,2,3,4,16……所以没有对指数是奇数时的判定.实际上用循环来求要比用递归快.在不考虑溢出的前提下,解法如下: #include<iostream> using namespace std; typedef unsigned long…
第一题 设置线程块中线程数为1024效果优于设置为1023,且提升明显,不过原因未知,以后章节看看能不能回答. 第二题 参考文件sumArraysOnGPUtimer.cu,设置block=256,新建内核,使每个线程处理两个元素. 思路很简单,将数据的虚拟内存对半分为高低两块,每一内核线程同时处理两个索引区域序列相同的数据即可: # include <cuda_runtime.h> # include <stdio.h> # include <sys/time.h>…
1.时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果小时小于10,则没有千位部分:如果小时是0,则没有百位部分:如果分小于10分,需要保留十位上的0.如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分. 有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据. 你的程序要输出这个时间…
2.1 程序: Celsius=eval(input("Enter a degree in Celsius:"))#输入摄氏度的值Celsiusfahrenheit =(9/5)*Celsius + 32 #定义华氏温度fahrenheitprint(Celsius,"Celsius is",fahrenheit,"Fahrenheit") 结果: Enter a degree in Celsius:4343 Celsius is 109.4 F…
7-1 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对齐:相邻两行符号数差2:符号数先从大到小顺序递减到1,再从小到大顺序递增:首尾符号数相等. 给定任意N个符号,不一定能正好组成一个沙漏.要求打印出的沙漏能用掉尽可能多的符号. 输入格式: 输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔. 输出格式: 首先打印…
Java程序设计(2021春)--第二章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第二章课后题(选择题+编程题)答案与详解 第二章选择题 2.1 面向对象方法的特性 T1 题面 答案 详解 T5 题面 答案 详解 2.2-1 类声明与对象创建 2.2-2 数据成员 2.2-3 方法成员 2.2-4 包 2.2-5类的访问控制权限 T3 题面 答案 详解 2.3-1 对象初始化 2.3-2 内存回收 2.4枚举类 T2 题面 答案 详解 第二章编程题 T1 矩阵螺…
这次笔试是今年校招我参加的第一次笔试..出了很多状况,基础知识不扎实,导致选择题耽误了太多时间,导致后面的题目没做完,编程题也没有在 时间内写出来,基本没有面试机会了.不过我继续研究第二个编程题,在10几分钟后做了出来. 这个题目具体已经不记得了,但是大概意思还是记得,我们把由4和7组成的数,按小大排序,例如:4 7 44 47 74 77 444 447 474 477 744 747 774 777 他们的序号依次为1,2,3,4.....,题目的输入是每行输入一个整数,可以很大(好像是最大…
其它pta数据结构编程题请参见:pta 题目 这个最短路径问题只需要求两点之间的最短路径,因而在Dijikstra算法中当求出目标点的最短路径之后跳出循环即可. #include <iostream> using namespace std; struct Node { int length; int price; }; int V, E; Node **G; void buildGraph(); void deleteGraph(); void dijkstra(int s, int d);…
其它pta数据结构编程题请参见:pta 题目 这道题考察最小生成树问题,用的是Prim算法. 和Dijkstra算法相比,没有了collect数组,因为dist[v] == 0就代表v被已收录. #include <iostream> using namespace std; int N, M; int** G; void buildGraph(); void deleteGraph(); int prim(); int findMinDist(int dist[]); int main()…
其它pta数据结构编程题请参见:pta 题目 和简单版本不同的是,简单版本只需判断能否到达岸边,而这个版本要求求出最少跳数的路径. 简单版本用dfs实现,而这道题用BFS实现. 注意: 岛半径为7.5,而不是15.另外注意一步跳到岸边的情况. #include <iostream> #include <vector> #include <math.h> using namespace std; ; int N, D; struct point { int x, y; }…
其它pta数据结构编程题请参见:pta 题目 主要用到了深度优先搜索. #include <iostream> using namespace std; struct Vertex { int x; int y; bool marked; }G[]; int N; //总鳄鱼数 int D; //可以跳的距离 bool dfs(Vertex& v); bool firstJump(Vertex v); bool jump(Vertex v1, Vertex v2); bool succ…
其它pta数据结构编程题请参见:pta 题目 题目要求分别以深度优先搜索和广度优先搜索输出图的连通集. 广度优先搜索要用到队列,先回顾一下循环队列: struct QNode { int* Data; /* 存储元素的数组 */ int Front, Rear; /* 队列的头.尾指针 */ int MaxSize; /* 队列最大容量 */ }; typedef struct QNode *Queue; Queue CreateQueue( int MaxSize ) { Queue Q =…
其它pta数据结构编程题请参见:pta 题目 题目给出一组字母和每个字母的频数,因为哈夫曼编码不唯一,然后给出几组编码,因为哈夫曼编码不唯一,所以让你判断这些编码是否符合是哈夫曼编码的一种. 解题思路: 1.构造哈夫曼树,并求出总代价COST,即各个字母的频数乘以编码长度的和. 2.对于题目给出的每一组编码,判断是否符合哈夫曼编码,即这组编码是否为前缀码,同时代价cost是否等于计算出的哈夫曼树的代价COST. 判断一组编码是否为前缀码的方法: 将这些编码逐个的添加到哈夫曼树中,对于每一个编码字…
其它pta数据结构编程题请参见:pta 这道题考察的是union-find并查集. 开始把数组中每个元素初始化为-1,代表没有父节点.为了使树更加平衡,可以让每一个连通分量的树根的负值代表这个连通分量包含的节点数,然后在union时把小的树并到大的树上. 另外在find操作时可以用递归的方式使查找路径上的所有节点的父节点都改为根节点,以实现路径压缩,在后续查找过程中会更快. #include <iostream> #include <vector> using namespace…
其它pta数据结构编程题请参见:pta 这道题考察的是最小堆. 堆是一个完全二叉树,因此可用数组表示,一个下标为 i 的结点的父节点下标为 i / 2,子结点下标为 2i 和 2i + 1. 插入元素:先把元素放到数组的最后面,然后不断循环和父节点比较,如果小于父节点则交换. 数组的下标为0存放一个很小的值作为哨兵,当进行插入操作时,如果插入的元素需要放到下标为1的位置时,和下标为0的值比较时会大于这个很小的值,因而会停止. #include <iostream> #include <v…
其它pta数据结构编程题请参见:pta 这道题考察平衡二叉查找树的插入. 为了保证二叉查找树的平衡,当一个结点的左右子树的高度差大于1时就要进行调整. 分为以下四种情况: 插入新节点后,以及旋转之后,需要更新结点的高度. RL旋转可以通过右孩子的LL旋转,然后当前节点的RR旋转实现. 同理,LR旋转可以通过左孩子的RR旋转,然后当前节点的LL旋转实现. #include <iostream> using namespace std; typedef struct Node *Tree; str…
其它pta数据结构编程题请参见:pta 这次的作业考察的是树的遍历. 题目的输入通过栈的pop给出了树的中序遍历的顺序.根据push和pop的顺序构造树的方法为:定义一个变量father来确定父节点,如果父节点还没有pop,那么push操作就构造父节点的左子树,否则构造父节点的右子树:定义一个栈用来确定pop操作弹出的节点,将father赋值为pop的节点,并将此节点的flag值(用来标记已经pop过)标为1. #include <iostream> #include <string&g…
其它pta数据结构编程题请参见:pta 这次的编程作业要求从上到下,从左到右输出一棵树的叶子节点,即树的层序遍历,用队列的方式来实现. 注意enqueue和dequeue函数参数为Queue &q,而不是Queue q,即用引用的方式才能改变实参的值. #include <iostream> using namespace std; struct Node { int left; int right; }; struct Queue { ]; ; ; ; }; int buildTre…
其它pta数据结构编程题请参见:pta 题目请参见:树的同构 因题目中左右子树是按照下标给出,因此用数组存放树是更好的方法. 判断两棵树是否同构:用递归的方法.如果当前两个结点都为空,则返回TRUE:如果一个结点空一个不空,或者两个结点都不为空但是结点存储的数据不同,则返回FALSE.然后递归地的调用函数,判断是否左子树和左子树相同且右子树和右子树相同,或者左子树和左子树相同且右子树和右子树相同. #include <iostream> using namespace std; struct…
很多第一次出Java编程题的老师,不知道Java在PTA中是如何处理输入的.写一篇文章供大家参考. 有多种类型输入的编程题: 类型1:固定数量输入 从控制台读入**两个**数,然后将其相加输出. 对于该题可以有如下两种样例输入输出: 样例输入输出1: 输入: 1 2 输出: 3 或者 样例输入输出2: 输入: 1 2 输出: 3 注意: 样例输入对应着输入文件中的内容,比如对应着输入文件0.in,一般来说该文件的最后还要有一个回车,比如1 2后面应有一个回车. 样例输出对应着输出文件的内容,比如…
编程题6 树的同构 编程题7 List Leaves 编程题8 Tree Traversals Again 编程题10 Root of AVL Tree 编程题12 堆中的路径 编程题13 File Transfer 编程题14 Huffman Codes 编程题15 列出连通集 编程题16 Saving James Bond 1 编程题19 Saving James Bond 2 编程题20 旅游规划 编程题21 公路村村通                                …
只因在今日头条刷到一篇文章,我就这样伤害我自己,手贱. 刷头条看到一篇文章写的滴滴出行2017秋招编程题,后来发现原文在这里http://www.cnblogs.com/SHERO-Vae/p/5882357.html.看了下,挺有意思,于是就想了想,又写了写,最终撸出来了.刚开始一看顿时感觉很熟悉,大学数据结构和算法课肯定讲过相关东西,什么深度搜索,广度搜索,最优路径,最优解...但是现在你让我说个一二三,我还就只记住几个名字,说不定名字都记错.我向来不喜欢死记东西,能查到的真的不想背下来,而…
前言 上一篇<C算法编程题(六)串的处理> 有些朋友看过我写的这个算法编程题系列,都说你写的不是什么算法,也不是什么C++,大家也给我提出用一些C++特性去实现问题更方便些,在这里谢谢大家提的一些建议和意见,我当时写这个系列的目的不是探讨算法和C++的特性,可能是我标题写的不好吧,让大家误解了,再这里给大家说声抱歉. 大家都学过数学,做过奥数题,其实大家看看我写的前几篇文章就会发现,做这类编程题就像做奥数题一样,锻炼的是我们的逻辑思维能力,我当时写的目的也是这样.如果说用一些语言的特性去实现,…
前言 上一篇<C算法编程题(五)“E”的变换> 连续写了几篇有关图形输出的编程题,今天说下有关字符串的处理. 程序描述 在实际的开发工作中,对字符串的处理是最常见的编程任务.本题目即是要求程序对用户输入的串进行处理.具体规则如下:    1. 把每个单词的首字母变为大写.    2.    把数字与字母之间用下划线字符(_)分开,使得更清晰    3.    把单词中间有多个空格的调整为1个空格.    例如:        用户输入:        you and     me what …
前言 上一篇<C算法编程题(四)上三角> 插几句话,说说最近自己的状态,人家都说程序员经常失眠什么的,但是这几个月来,我从没有失眠过,当然是过了分手那段时期.每天的工作很忙,一个任务接一个任务,脑子不停的在运作,晚上也搞到很晚,然后就回到住的地方,看会书倒头就睡了,而且睡的很死,也许是太累了,身体累,精神也累.还好早上上班时间不是很早,离公司也比较近,可以多睡会,但是也还是睡不够的感觉. 有时候发现做程序员真的很累,但是既然选择了这条路,自己平民屌丝一个,家里既没背景又没钱,只能坚持走这一条路…
前言 上一篇<C算法编程题(三)画表格> 上几篇说的都是根据要求输出一些字符.图案等,今天就再说一个“上三角”,有点类似于第二篇说的正螺旋,输出的字符少了,但是逻辑稍微复杂了点. 程序描述 方阵的主对角线之上称为“上三角”.    请你设计一个用于填充n阶方阵的上三角区域的程序.填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充.    例如:当n=3时,输出:    1 2 3    6 4    5    当n=4时,输出:    1  2 3 4    9…
前言 上一篇<C算法编程题(一)扑克牌发牌> 写东西前总是喜欢吐槽一些东西,还是多啰嗦几句吧,早上看了一篇博文<谈谈外企涨工资那些事>,里面楼主讲到外企公司包含的五类人,其实不只是外企如此,私企和合资的都是如此,一些公司反正什么人都有,就怕你的上司是第一种,你的同事是第二种.这种搭配最讨人厌,反正技术和工作效率不怎么样,“做人”还蛮会做的.其实不管公司怎样,同事怎样,工作环境怎样.就像里面楼主说的,都要坚持自己选择的路,并坚持走下去... 这几天都在博园逛一些技术大牛的博客,也买了…
第1周编程题 查看帮助 返回 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 1 字符串比对(10分) 题目内容: 题目说起来很简单,你会读到两个字符串,每个字符串占据一行,每个字符串的长度均小于10000字符,而且第一个字符串的长度小于第二个字符串的.你的程序要找出第一个字符串在第二个字符串中出现的位置,输出这些位置,如果找不到…