- 博客(88)
- 收藏
- 关注
原创 用C语言实现完全平方数计算【一题一策】第三期
题目:一个整数,它加上100后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?
2024-01-06 08:29:52
505
原创 C语言实现求应发放奖金总数【一题一策】第二期
企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成 7.5%;20 万到 40 万之间时,高于 20 万元的部分,可提成 5%;40 万到 60 万之间时高于 40 万元的部分,可提成 3%;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,高于 100 万元时,超过 100 万元的部分按1%提成,从键盘输入当月利润 I,求应发放奖金总数?
2024-01-02 21:05:35
571
原创 C语言实现将不同数字组成无重复的三位数【一题一策】第一期
我们经过排列组合,判断共能组成24个互不相同且无重复数字的三位数。那么就可以这样来判断,百位数共有4种可能,分别为1、2、3、4。十位数为3种可能,个位数为2种可能,即得到4*3*2=24种。那么依次打印即可,使用for循环进行遍历。
2023-12-30 12:17:13
528
原创 用C语言实现“7-9 用天平找小球”,基础编程由此开始(第九节)
今天这道题目呢是收录在基础编程题目集当中的第九题,正如题目所讲,用天平找小球。看到题目后,自然会想到这道题目可以用到一个if条件语句以及一个“与”运算。题目要求也很简单:输入三个正整数,对应不同的A、B、C球的重量。打印输出唯一一个不同重量的球。梳理逻辑1、在一行中给出三个正整数,也就是用到我们常见的scanf函数。2、输出唯一的那个不一样的球,这里就需要用到一个if条件语句的判断。那如何找到唯一一个不一样的呢,我们可以这样思考。如果A球是那个唯一不一样的,那么A就不等于
2022-01-21 15:53:38
1673
原创 用C语言实现“7-8 超速判断”,基础编程由此开始(第八节)
今天这道题目呢,正如我标题中所讲,就是进行一个超速判断。给定一个指定的速度值,就是60mph,mph是速度计量单位,表示60英里每小时,俗称迈。要求输入汽车的速度值,与该给定的速度值进行一个大小比较。如果汽车的速度超过60mph,那么就输出Speeding。反之,则输出OK。梳理逻辑正式开始写代码之前,是需要梳理逻辑的。这道题目的逻辑也很简单。1、要输入在一行中给出1个不超过500的非负整数,其实可以对该非负整数进行一个数值大小判断,如果超过500,可以要求再重新输入,不
2021-12-11 10:46:38
2981
1
原创 用C语言实现“7-7 12-24小时制”,基础编程由此开始(第七节)
大家都知道,我们日常生活中的时间分为上午AM和下午PM,时间呢也是有24小时制的和12小时制的,24小时制的呢,就是会存在24点这个说法,而12小时制呢,就是正如我说的上午AM和下午PM分开来算。这道题目的要求呢,就是要求用户输入24小时制的时间,然后显示12小时制的时间。题目的具体要求1、输入一行中间带有冒号的24小时制的时间,比方说12:34就表示12时34分。当小时数或者分钟数小于10的时候,没有前导的0,比方说5:6表示5时6分。提示:这里可以用到scanf函数,用scanf函数来处
2021-12-09 22:02:33
4378
1
原创 用C语言实现“7-6 混合类型数据格式化输入”,基础编程由此开始(第六节)
今天的这道题目呢,是想与大家谈一谈如何用C语言实现混合类型数据格式化输入。这道题是收录在基础编程题目集当中的第五题。难度不大,但是需要大家掌握基本的基础知识。题目要求1、顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。2、输出的浮点数需要保留小数点后两位。理顺逻辑这道题目的逻辑就非常简单了。需要输入指定的数据,那就要求使用到一个scanf函数。需要将数据进行格式化输入与输出,那就需要用到%d、%c、%f等来表示输出数据的类型。
2021-12-08 15:56:47
1668
原创 用C语言实现“7-5 表格输出”,基础编程由此开始(第五节)
今天这道题目就是给大家轻松一下的,非常简单,也不用想那么多复杂的东西。这道题目的要求是:严格按照给出的格式输出下列表格。换而言之,只需要用到printf语句即可。可以说是非常简单了。梳理逻辑这道题目也没什么逻辑可以说的,只需要注意两点:1、printf语句的使用。2、换行符号需要用到\n。代码实现#include<stdio.h>int main(){printf("------------------------------------\n");
2021-11-17 09:29:37
3293
原创 用C语言实现“7-4 BCD解密”,明白十进制、二进制、十六进制的转换过程,基础编程由此开始(第四节)
今天这道题目呢,与之后要讲到的“龟兔赛跑”都是从PAT的基础编程题目中节选过来的。难度不是很大,但是特别基础,复习到了基础知识,也就是二进制、十进制两者之间的相互转换。我们先来看看这道题目的要求:BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以,如果一个BCD数的十六进制为0x12,那么它的十进制也是12。此时有一位小伙伴并不知道BCD数的运算规则,直接把0x12当作二进制来转换成十进制,那就会得到18。现在呢,我们就期望能把这个错误得到的十进制,转换成我们期望得到
2021-10-26 09:26:56
974
原创 用C语言实现“7-3 逆序的三位数”,基础编程由此开始(第三节)
今天这道题目呢,是收录在基础编程题目集当中的第三题。题目要求非常直白,就是让程序读入一个三位数,然后进行逆序输出。不过需要注意的是,当输入的数字结尾含有0的时候,逆序输出时不应该带有前导的0。比方说输入123,得到321,而输入700,则得到7。理顺逻辑要完成这道题目,得到最终满足题目要求的结果,就需要对得到的三个数字进行计算。而不是直接把三个数字打印出来,因为这样打印出来的就无法满足题目要求了。由于我们需要输入一个数字,所以要用到scanf函数,以及用到%取余和/除法取整。
2021-10-25 14:19:45
422
1
原创 用C语言实现“7-2然后是几点”,基础编程由此开始(第二节)
今天这道题目呢,是收录在基础编程题目集当中的第二道题目。难度并不大,但是需要特别仔细,以及考虑全面一些,我在做这道题目的时候,考虑不够周全,就需要对错误一个一个进行排除。题目具体要求我们先来看一下这道题目的具体要求:1、我们可以用具体数值来表示时间,比方说1106表示11时06分。2、现在需要读入两个数值,第一个数值代表时间,比方说输入1120,则代表11时20分,第二个数值代表分钟数,比方说输入110,则代表现在从11时20分开始,时间往后走110分钟。3、最终要求得到的结果为13
2021-10-17 09:51:01
1307
原创 用C语言实现“7-1厘米换算英尺英寸”,基础编程由此开始(第一节)
今天这道题目,正如字面意思一样,是用C语言来实现厘米换算英尺英寸。这道题目呢,是收录在基础编程题目集当中的编程题第一题,按理来说没啥难度,但为什么我要放上来呢,因为这道题的题目意思存在歧义。题目要求,理顺逻辑话不多说,我们先来看看这道题目的要求:1、如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)*0.3048。2、现在要求输入的是厘米数,求对应英制长度的英尺foot和英寸inch的值。3、1foot=12inch。以上就是给定的要求,
2021-10-16 13:18:01
1996
3
原创 PAT乙级1011,用C语言进行编程,实现A+B和C的数值大小判断
今天要讲的这道题目呢,是收录在PAT乙级中的第1011题,非常简单的一道题目,但我在做这道题目的时候,还是犯了一点错,实在是不应该啊。归根结底的原因在于我没有读清楚题目,做题目的时候太着急了,太注重结果了,非但没有提升速度,反倒是降低了做题的效率。话不多说,我们先来看一下这道题目的要求。题目要求如下1、给定区间[-2^31,2^31]内的3个整数A、B和C,请判断A+B是否大于C。看到这个题目要求,就一定要提及一下,注意,区间是[-2^31,2^31]。我们一般知道的int类型的区间
2021-09-15 14:25:40
649
原创 PAT乙级1010,用C语言进行编程,设计函数进行一元多项式求导
本来计划一个暑假多刷一些关于PAT的题目,以及提升一下自己的编程能力。结果,暑假倒是过去了,也步入研二了,但是这些文章呢,一直迟迟没有写出来。我感觉非常不好意思,所以,从今天开始,我又回来继续写这些关于编程的文章了。一方面呢,是为了提升自己的实力,另一方面呢,也是为了让更多小伙伴能跟我一起提升编程技术。今天这道题目呢,是收录在PAT乙级中的第1010题,也就是一元多项式求导。题目要求如下:1、以指数递降的方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数),但这个括号里的
2021-09-08 16:10:01
850
原创 PAT乙级1009,用C语言进行编程,给定一句英语实现倒序打印
正如标题所说,今天带来的是PAT中一道20分的题目,也就是PAT乙级1009说反话。其实题目要求很简单,就是给定一句英语,用字符串的形式存储,然后用C语言把句中所有单词和空格进行一个倒序打印出来即可。那么,在得到这个题目的要求后,我们就可以分析出该题目的逻辑:1、要用到字符串,但是这里得注意,C语言中并没有字符串这个类型,它不像C++和Java一样是有字符串类型的,所以要表现出字符串,就得需要使用字符数组,或者说是字符指针,不过今天这道题呢,当然是以字符数组为主,看起来也能更加直观一些。2、
2021-07-15 21:31:55
566
5
原创 PAT乙级1008,用C语言进行编程,解决数组元素循环向右问题
周一了,还是不能忘记提升自己的编程能力。今天练习的这道题是PAT乙级1008,主要是为了解决数组元素循环向右问题,不看这道题目的具体描述,我就已经能猜出这道题的大概要求了。就是为了让我们实现一组元素不停地向右移动。比方说给定一组数据{1,2,3,4,5,6},向右移动两位的话,得到结果应该为{5,6,1,2,3,4}。不过呢,为了保险起见,还是得看看这道题目的具体要求:1、一个数组中存在N个整数,当然这里的N是大于0的,在不允许使用另外数组的前提下,将每个整数循环向右移M个位置,同时M也
2021-07-12 16:54:23
438
原创 PAT乙级1007,用C语言进行编程,实现素数对猜想
这一次呢,与之前所写的博客联动一下。因为之前是对素数进行判断,那么这篇博客呢,就来完成PAT乙级中的1007这道题,也就是实现素数对猜想。先来提一提该题目的要求:定义一个dn=pn+1 - pn, 其中呢pi是第i个素数,显然当素数pn+1为3时候,pn为2时,有满足dn=1,那么素数对猜想主要是为了满足dn=2的时候,满足该要求的素数对有多少对。以20为例,显然存在3、5/5、7/11、13/17、19 这样四对素数对。而我们要实现的,就是用代表来把这最后有多少对素数对的数量给输出出来。
2021-07-10 17:42:19
282
2
原创 C语言实现素数判断,条件语句可不能忘
练习C语言的第二天及第二题,我们来谈一谈对素数的判断。提到素数,想必大家都不陌生。素数,就是质数,大于1的一个正整数,指的是它不能被除了1与它本身以外的其它自然数整除,给几个最简单的例子,2就是素数、3也是素数、5也是素数。很明显可以看到,这些数都不能被除了1与它本身以外的其它自然数整除。那判断能否整除的条件,自然就是取余数。比方以3为例,在1和它本身之间的数为2,而3除以2取余为1,不为零,则说明它为素数。反之,以6为例,6除以2取余为0,则说明它不为素数。那么,在知道
2021-07-10 09:34:31
1083
2
原创 C语言实现九九乘法表,以for循环为主
练习编程当然是要从最简单的开始了。小的时候我们都背过九九乘法表,毕竟这可是数学的基础啊,会了九九乘法表之后我们才能计算更难的数学题。那么如果用编程来实现九九乘法表,我们应该怎么做呢。仔细思考一下,我们印象中的九九乘法表是不是1x1=1,2x1=2,2x2=4,3x1=3,3x2=6巴拉巴拉的。这里是不是涉及到三个值,分别是第一个值1,第二个值1,第三个值1呢。所以,我们是不是需要三个变量来存储这些值,那第一个值用变量i来存储,第二值用变量j来存储,那第三个值我既可以用变量也可以不用变量,
2021-07-09 10:50:29
17244
原创 PAT乙级1006,用C语言进行编程,换个格式输出整数
今天的这道题呢就放松一下了,难度也不大,比较简单。不过为了让整个流程都比较明朗,对于这道题虽然我只花了一丢丢时间就完成了,但是还是得详细讲一讲。这道题的大致要求是:用字母B表示百位,用字母S表示十位,用123...n来表示不为零的个位数字(n<10),例如234输出得到为BBSSS1234。审题分析,理清逻辑,流程图流程图如图所示,得到流程图之后其实思路还是蛮清晰的,就是对百位、十位、个位进行一个分别计数。对于这道题呢,其实很简单,就是由简到繁。既然要求对百位、十位、个位分
2021-07-09 08:50:53
199
4
原创 PAT乙级1005,用C语言进行编程,继续卡拉兹猜想
今天的这道题目着实把我难住了好久,不愧是PAT乙级中值25分的一道题。这道题呢,是在PAT乙级1001的基础上来增加了一些难度,但是呢,还没有涉及到数据结构,可以说只需要盘清楚逻辑,就可以做这道题了。我们先来看一看这道题描述了什么:当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推到的每一个数。例如对n=3验证的时候,我们需要计算3、5、8、4、2、1,当我们对n=5、8、4、2进行验证的时候,由于我们之前在验证3的时候已经递推过了,所以就不需要验证这些数字。看到这句话的时候,
2021-07-08 11:19:46
1112
3
原创 PAT乙级1004 用C语言进行编程
期末了,真的挺忙的,不过忙完这一段时间也就空了不少。趁着这段时间来好好刷一下题,锻炼一下手感,今天我做的题目是PAT乙级1004。这道题啊,乍一眼看上去很简单,可实际上在做的时候还是会出现不少错误。小伙伴们可不能像我一样这么马虎。我们先来看一看这道题目的要求:输入n个学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。题目真的非常简短,但是我们也不能疏忽。照惯例,首先是审题分析,理清逻辑。每次在做编程题与算法题的时候,我始终把这一基本要求放在首位。审题分析
2021-06-24 13:39:26
724
1
原创 PAT乙级1003 用C语言进行编程
我发现,好久没写算法题了,人都变菜了。PAT乙级才只做到1003的时候,就发现自己已经力不从心,很多都不会了。还是得好好地反思一下自己。在做这道题的时候,主要遇到的wen ti
2021-06-07 16:04:09
599
3
原创 PAT乙级1002 用C语言进行编程
说来有些惭愧,这道题做了两天。一方面是学校课程比较忙,导致没什么时间来写。另一方面是自己遇到了一个非常非常非常浅显的错误,没有给sum赋值,但是我没想到xcodeju r
2021-06-05 17:05:34
316
1
原创 PAT乙级1001 用C语言进行编程
卡拉兹(Callatz)猜想:对任何一个正整数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数n,...
2021-06-03 23:44:45
299
原创 工程师编程,C语言学习,关于数组的一些问题
硕士阶段开始了专业课学习,也就是工程师编程,涉及到的编程语言有C、C++和嵌入式编程语言。当然,再从基础开始打起,那就是从C开始了。这次的问题就是谈到数组(Array)了。在谈及这个问题时,我会从三个方面来思考:1、数组的定义是什么,也就是何为数组?2、如何在数组中填充元素(数据)? 3、如何用数组来解决实际问题,缩短和简化程序?抱着这三个疑问我去查找了相关知识。首先针对第一个问题:数组的定义是什么,何为数组?这其实很简单,数组就是用来存储一个固定大小的相同类型元素的.
2020-11-25 17:56:13
432
原创 集合Map接口的应用和学习,以及属于Map的HashMap的用法。
最近在复习集合Collection,集合,顾名思义,就是用来存储一组可变数量的数据项的组合,这个数据项也可以是0个。其中在Java中,有一个Map接口能够提供集合,可以供我们来进行存储数据,以便随时能够进行查找。Map接口属于一个集合类里面的,它定义的集合又称为查找表,存储所谓“key-value”映射对。这里的key可以看作是value的索引,可以根据索引来找到对应的内容,即根据...
2020-04-13 14:55:56
156
原创 最近有些慵懒,不能懈怠了,开始进行复习,好好地写技术博客了,今天的内容是Java中的File I/O:输入输出流
File I/O(Input/Output):文件的输入和输出流。一般来说,我们用File I/O的主要用法就是:1、可以得到一个永久的副本。2、一个程序的输出可以输入到另一个程序。3、可以自动输入,不必手动输入,最主要还是一个方便,比方说写一个网页的时候,可以写个按钮,做个功能,比方说我最近涉及到的毕业设计,就是可以写一个File I/O来弄一个Json和Xml文件之间的自动转换...
2020-04-08 12:32:23
151
原创 应用程序编程接口API,我们来聊一聊这个熟悉的名词
API,全称叫做Application Programming interface,也就是应用程序接口,API是一些预先定义的函数,我是学Java的,当我要使用这些函数的时候,便可以直接调用Java API,不用去访问源码,也不用去理解其中内部工作机制的细节。了解API之前,先了解接口API从本质上来说还是接口,那接口的定义是什么,接口软件接口和硬件接口,同时软件接口又分为软件类接口和硬件...
2019-11-16 15:21:05
659
原创 【Python】冒泡排序
在用python写冒泡排序之前,我们先来了解一下冒泡排序(Bubble Sort)它重复的遍历要排序的元素组,依次比较相邻的两个元素比方说我给出一组元素:22 44 66 88 33 55 77 99我们就要把这一整个元素组按小到大排列出来也就是说,我们期望得到的结果是22 33 44 55 66 77 88 99由于冒泡元素是两两比较那么首先是22和33比较,如果发生换位...
2019-08-27 11:18:32
388
原创 【数据结构】二叉树的前序遍历
Q:如图所示这棵二叉树的前序遍历、中序遍历、后序遍历结果是A:前序遍历(DLR:Preorder Travelsal)先访问根结点,然后遍历左子树,最后遍历右子树(同级别自左向右进行遍历)那么首先访问的是C,然后向左遍历BA,再向右遍历ED得到前序遍历结果是CBAEDB:中序遍历(LDR:Inorder Travelsal)先遍历左子树,然后访问根结点,最后遍历右...
2019-08-21 11:20:35
208
原创 【操作系统】RR算法(时间片轮转,假设时间片q=1)
假定在一个处理机上执行的操作如下:作业 估计服务时间 各作业到达时间 A 2 0 B 3 3 C 1 4 D 5 6 E 4 5 请用RR算法(时间片轮转,假设时间片 q =1)来完成这些作业的调度情况由于q=1,所以说明一次只能够运行一个那么按照顺序排列,A先到达0:...
2019-07-31 08:50:43
17828
4
原创 【操作系统】FCFS算法
假定在一个处理机上执行的操作如下:作业 估计服务时间 各作业到达时间 A 2 0 B 3 3 C 1 4 D 5 6 E 4 5 FCFS算法(First come first served):先来先服务算法:根据进程到达时间决定先运行哪个进程有点类似于FIFO先进先出算法,是属于非抢占型(一旦...
2019-07-30 08:55:29
5333
原创 【操作系统】LRU算法
考虑下述页面走向:6,7,5,2,6,7,3,6,7,5,2,3 当分配的内存物理块数量分别为3和4时: LRU(最近最久未使用页面置换算法)的缺页次数分别是多少?当分配的内存物理块数量分别为3时:根据LRU是最近最久未使用页面置换算法,所以每次最近最久的都要被置换掉,注意,这里是前面最近最久,并不是后面最近最久,因为如果是后面最近最久的话,就根本还没到,在前面的内容放入进去之前...
2019-07-29 09:59:49
4958
原创 【操作系统】OPT算法
B、考虑下述页面走向:6,7,5,2,6,7,3,6,7,5,2,3 当分配的内存物理块数量分别为3和4时: OPT(最优页面置换算法)的缺页次数分别是多少?OPT(最佳置换算法):从主存中移出永远不再需要的页面,如果没有这样的页面存在,那就选择最长时间不需要访问的页面,来保证最低的缺页率当分配的内存物理块数量为3时先放入6,7,5,当放入2的时候,显而易见,最长时间...
2019-07-27 14:37:43
33665
原创 【操作系统】FIFO算法
A、考虑下述页面走向:6,7,5,2,6,7,3,6,7,5,2,3 当分配的内存物理块数量分别为3和4时: FIFO(先进先出页面置换算法)的缺页次数分别是多少? FIFO(先进先出页面置换算法)的缺页次数: FIFO(先进先出页面置换算法):看到先进先出,我们想到的数据结构就是队列当分配的内存物理块数量为3时6,7,5先进入内存,那么出来的顺序就是5,7,6 缺...
2019-07-27 14:13:27
22275
原创 【数据结构】分离链接法和平方探测法相关例题
现有数据序列{4371,1323,6173,4199,4344,9679,1989}和散列函数h(x)=x mode 10。(1)请画出用分离链接法表示的散列表(5分)(2)请画出用平方探测法f(i)=i*i表示的散列表(5分)(3)请计算前两题中散列表的装载因子和查找成功的平均查找长度ASL(5分)(1)分离链接法0 1 4371 ...
2019-07-26 17:21:51
3072
原创 【操作系统】银行家算法,当其中一个进程发出请求时,需要判断系统是否能够将资源分配给它
银行家算法的基本思想是分配资源前,先判断系统是否是安全的,只有在系统安全的情况下,才会进行分配资源上接前一篇博文Q:在银行家算法中,若出现下述资源分配情况(5 个进程,资源 A/B/C 共 3 类)假设系统有 A类资源5个,B类资源7个,C类资源 12 个,某一时刻有以下分资源分配 Process Max ...
2019-07-24 09:56:01
5604
原创 【操作系统】银行家算法,安全性算法验证
银行家算法是操作系统中很重要的一部分内容Q:在银行家算法中,若出现下述资源分配情况(5 个进程,资源 A/B/C 共 3 类)假设系统有 A类资源5个,B类资源7个,C类资源 12 个,某一时刻有以下分资源分配 Process Max Allocation ...
2019-07-23 16:57:50
3170
原创 算法中的时间复杂度O(n)详解例题
以下T(n)表示各算法中最耗时操作的执行次数,n表示数据量,请按照时间复杂度从小到大排列,正确的是()。 T1(n) = 100n + 200T2(n) = 3n^2T3(n) = 10000000T4(n) = 300A. T1<T2<T3<T4B.T2<T1<T4<T3C.T3<T4<T1<T2D.T3<T...
2019-07-14 18:25:13
9540
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人