- 博客(21)
- 收藏
- 关注
原创 110.考试排名(输入有问题
whilefor能正确读取多行输入,是因为忽略所有空白字符(包括换行),把整个输入看作一个连续的 token 流。只要每行的 token 数量固定(1 + n),这种读法就完美匹配,简洁高效!这也是 OJ(在线判题系统)中处理此类格式输入的标准做法。
2026-03-09 17:02:08
26
原创 92.字符串统计 93.隐藏口令(两个没啥思路
(3)在s1中但不在s2中的字母,在s2中但不在s1中的字母:adfgoqv;(4)不在s1中且也不在s2中的字母:bceimnprtuwxyz;(1)在s1或s2中存在的字母(包括在s1和s2中都存在的字母);(1)在s1或s2中存在的字母(包括在s1和s2中都存在的字母);(3)在s1中但不在s2中的字母,在s2中但不在s1中的字母;(3)在s1中但不在s2中的字母,在s2中但不在s1中的字母;(4)不在s1中且也不在s2中的字母;(4)不在s1中且也不在s2中的字母;(2)在s1中且在s2中的字母;
2026-02-13 17:20:13
148
原创 83.表达式求值 84.删除字符
依次输出从标准输入设备中读入的每一组测试数据对应的结果,输出一行,输出该表达式的值。所有数据前后没有多余的空格,两组数据之间也没有多余的空行。标准输入设备中有多组测试数据,每组输入数据由一行组成,输入仅有整数和加减(正负)号构成的表达式(但是表达式可以插入空格)。以字符串形式输入仅有整数和加减(正负)号构成的表达式,输出该表达式的值。每次读到数字将其转换为int形式。num[i] - '0 '处理两位数以上的数字。
2026-02-12 18:57:30
138
原创 81.求小数位数个数
但是没有想到的是,经过测试员的测试,发现了一大堆的错误,返回的结果很多都是不对的,这个令明明相当的不解,始终想不通自己的程序错在哪里。你是一名经验丰富的程序员,明明把这个问题来求助于你,明明和你说了他的想法,你一听就明白明明错在了哪里,原来明明使用double型来存放浮点数,但是由于double型的精度问题,不可能把所有的小数都精确的保存好,如果小数位数很长,就会出错。对于每一组测试数据,你写的程序要求计算出一组相应的运算结果,并将这一组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。
2026-02-11 21:08:53
244
原创 72.数字金字塔(动态规划)
作者: xxx时间限制: 1s章节: 二维数组考虑在下面被显示的数字金字塔(第n行有n列)。写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大。每前进一步可以走到它的正下方或者右下方(往下一行、往右一列)的位置。73 88 1 02 7 4 44 5 2 6 5在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大和:30第一个行包含 R(1<= R<=1000) ,表示行的数目。后面每行为这个数字金字塔特定行包含的整数。所有的被供应的整数是非负的且不大于100。输出仅一行
2026-02-10 18:51:11
206
原创 75.魔方阵 77.螺旋方阵
(2) 从“2”开始直到n*n为止各数依次按下列规则存放:每一个数存放的行的行数比前一个数的行数减1,每一个数存放的列的列数比前一个数的列数加1,即前一个数的右上方。(5) 如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。明明的问题可以归结为:给你一个阶数n,请你按照题目中描述的方法,构造出n阶魔方阵。(3) 如果上一数的行数为1,则下一个数的行数为n(指最下面一行);(4) 当上一个数的列数为n时,下一个数的列数应为1(指最左一列);放1:(参考规则1)
2026-02-10 13:17:35
243
原创 70.矩阵问题
对每组测试数据,你的程序需要向标准输出文件(通常为启动该程序的终端)依次输出符合要求的矩阵,每行数据与数据之间以空格分隔,在行首和行尾不要输出多余的空格。在所有数据前后,以及两组数据之间不要输出多余的空行。你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组测试数据数据占一行,大于零,小于等于8。主对角线是i==j;副对角线是i+j==2*n。左半三角区域的值为4,右半三角区域的值为5。上半三角区域值为2,下半三角区域值为3,
2026-02-08 21:20:48
166
原创 65.求n天后的日期 66.输出菱形 68.素数(更高效的方法)
写一个函数,传入年月日,计算它的第二天,并返回该日期。由用户输入年月日和一个n值,使用前述函数,计算该日期加n天的日期为多少。输入year,month,day和n共4个正整数,以空格分隔。n的值不超过2000。输出计算得到的结果年月日共3个正整数,整数之间以一个空格分隔,行首与行尾无多余空格。一天一天的向后判断,省去判断所有天数时的复杂。
2026-02-04 12:07:36
214
原创 56.最少拦截系统
再要拦截高度为2的炮弹,使用第一套拦截系统或者第二套都可以,但考虑到后面还需要拦截炮弹,我们这里使用第一套拦截系统(为什么不能用第二套,自己想啦)。第二套拦截系统发射的炮弹高度打到4和2的高度(实际上,要拦截高度为2的炮弹,使用第一套拦截系统或者第二套都可以),第三套拦截系统发射的炮弹高度打到4和1的高度(实际上,要拦截高度为1的炮弹,三套拦截系统都可以)。则一个拦截系统的第一发炮弹必须打到高度5的地方,第二发炮弹打到高度3的地方。再拦截高度为1的炮弹,第一套和第二套系统都可以,我们就使用第二套吧。
2026-02-01 21:13:26
392
原创 47.最大值 48.数列1
标准输入设备中有多组测试数据,每组测试数据有两行,每组测试数据的第一行有三个整数N(0<N≤20)、L1、L2(0<L1≤L2≤N),N表示数字串中有多少个整数,L1、L2表示可选数字个数的范围,每组测试数据的第二行有N个整数,整数大小的绝对值都小于等于100,整数之间用一个空格隔开。标准输入设备中有多组测试数据,每组测试数据有两行,每组测试数据的第一行有一个整数n(0<n≤50),表示数字串中有多少个整数,每组测试数据的第二行有n个整数,整数大于等于0且小于等于100,整数之间用一个空格隔开。
2026-01-29 21:42:57
815
原创 45.回文数
明明的爸爸是一名数学专家,他当然对这种类型的数字早有研究,他对明明说:“这些是回文数,它是一种特殊的数字现象,即这些数字的左右两边是对称的。这个方法如下: 例如首先给你一个数19,然后把它的最低位与最高位交换(如果还有更多位,则次低位与次高位交换......),得到它的逆序数91,然后两数相加,即19+91=110,我们得到110,因为110不是回文数,因此我们继续上面的步骤,110+11=121,现在我们就得到了一个回文数121。于是他就求助于你,请你帮他写一个程序,通过程序来完成以上求回文数的过程。
2026-01-29 17:41:24
371
原创 39.约瑟夫环
接着从编号3的人开始数,数到2后,编号4淘汰,这样只剩下3个人:1,3、5;他想知道自己被淘汰的全过程,于是他想请你帮个忙,帮他写一个程序,明明把他公司的人数告诉你,并且把那个淘汰数也告诉你,你的程序能够根据这两个数计算出淘汰人的具体顺序,即把淘汰人的编号按顺序输出。这个游戏的方式如下:首先公司的全部职员围成一个圈,然后确定一个淘汰数X,接着就从其中的一个人开始,从1数数,当数到X时,那个人就被淘汰出局,接着下一个人再从1开始数数,一直这样重复下去,直到剩下最后一个人,那个人就是最后的大奖得主。
2026-01-28 16:50:23
394
原创 32.计算e
利用公式e=1+ 1/1!,编程计算e的近似值,直到最后一项的绝对值小于threshold(该项不包括在结果内),输出e的值并统计累加的项数。输出一个实数表示e的值,保留6位小数,并输出一个整数,表示累加的项数。两个数字之间用一个空格分隔,在行首和行尾没有多余的空格。输入一个实数threshold,表示累加的阈值,数列中最后一项的值大于等于该阈值。Threshold最小可为1e-10。
2026-01-28 13:26:11
36
原创 30.求最晚和最早日期
每组输入数据由多行组成。每组测试数据的第一行输入一个整数N(0<N<20),表示有N个日期。其后N行每行有三个整数Y(1≤Y≤2015),M(1≤M≤12),D(1≤D≤31)表示一个日期。对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的文本终端)输出两行,每行包括3个整数,第一行为最晚日期,第二行为最早日期,整数之间以一个空格分隔,行首与行尾无空格,所有数据前后没有多余的空行,两组数据之间也没有多余的空行。输入N个日期,每个以年、月、日的顺序读入,打印输出最晚的日期、最早的日期。
2026-01-26 13:25:10
31
原创 24.回文质数 27.算菜价 28.水果价格
因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 号是回文质数。写一个程序来找出范围[a,b](5<= a < b <= 100,000)间的所有回文质数。仅 1 行: 二个整数 a 和 b(5<= a < b <= 100,000)。输出一个回文质数的列表,一行一个。先判断回文(快)在判断质数(慢);每行首尾无空格,最后无空行。
2026-01-25 14:30:16
37
原创 19.数字串处理
标准输入设备中有多组测试数据,每组测试数据有2行,测试数据的第一行有1个整数n(1<n<100),表示数字串中有几个数;对于每一组测试数据,你写的程序要求计算出一组相应的运算结果,并将这一组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。每组运算结果为两个整数:出现次数最多的那整数,以及它的出现次数。每组运算结果单独形成一行数据,其行首和行尾都没有任何空格,每组运算结果与其后一组运算结果之间没有任何空行,第一组运算结果前面以及最后一组运算结果后面也都没有任何空行。注:通常,显示屏为标准输出设备。
2026-01-24 15:25:16
59
原创 18.三角形
标准输入设备中有多组测试数据,每组测试数据仅有一行,每行有两个整数s和n(1≤s≤9,1≤n≤80),其中s表示位于三角形的最顶端的数字,n表示三角形由几行数字组成。对于每一组测试数据,你写的程序要求计算出一组相应的运算结果,并将每组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。每组运算结果为构建出来的三角形,三角形中的同一行的数字两两之间用一个空格隔开。第一行为一个数字,第二行为2个数字,以此类推,直到第六行的六个数字,且三角形中的数字都是1到9在循环重复,是这样吗?
2026-01-23 17:53:38
576
原创 13.求阶乘结果0的个数 26.阶乘最后的非0位 14.求怪数 17.T的倍数
scanf函数的返回值是成功读取的项数。例如,如果您调用scanf("%d", &a)并输入一个整数,那么scanf将返回1,因为它成功地读取了一个项。提示:在乘积中,末尾有多少个0,主要看各乘数的素数因子中有多少个2和5,每一个2和5的结合将给末尾贡献一个0。而乘数中因子2的个数远多于因子5的个数,因此,就计算各乘数中因子5的个数即可。每组输入数据由一行组成,每行由一个正整数N组成,N小于等于100000,在行首和行尾没有多余的空格。我们输入一组数据后即进行处理,然后输出,再输入下一组,再处理、输出。
2026-01-23 12:52:16
540
原创 5.银行存款到期日 7.解二次方程
银行存款有3个月、6个月定期等。从键盘输入一个日期(即为存款日期)以及定期的时间长度(单位为月,输入的时间长度可为小于等于60的任意正整数),请编程输出该定期存款的到期日期。共输入4个整数,中间以空格分隔,第一个整数表示年,第二个整数表示月,第三个整数表示日,第四个整数表示定期长度(单位为月)。输入2014年3月31日,则到期日是2014年6月30日(6月没有31日,所以30日就到期);输入2015年11月30日,则到期日是2016年2月29日。输入2014年4月30日,则到期日是2014年7月30日;
2026-01-22 13:16:11
379
原创 4.一个月的天数
输入两个整数,中间以空格分隔,第一个整数表示年,第二个整数表示月。输出该年该月的天数,输出时,行首与行尾均无空格,仅输出一个整数。// 定义平年每月天数(下标1~12对应1~12月)// 输入年份和月份(空格分隔)// 判断是否为闰年且是2月。// 校验月份是否合法。输入年和月,输出该月有几天。我的:利用if逐个判断。
2026-01-22 12:40:15
331
原创 3.解方程
描述:编写程序:输入a、b后,输出一元一次方程2*a*x+3*b-5=0的解;return 0;这段 C 代码有一个%fdouble,这会导致未定义行为(通常读入的值是错误的)。
2026-01-21 11:10:33
73
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅