
PTA
盟主讨厌去舞台走路
愿我们都像对方一样勇敢
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
KMP算法的理解与应用
KMP算法引言KMP算法主要用于实现字符串匹配,在一串文本串中,是否存在模式串,共出现几次,第一次出现位置是哪里等问题都能解决,例如:文本串:aabaabaaf (假定为m个)模式串:aabaaf(假定为n个)找出模式串在文本串中的匹配位置如果采用暴力破解,逐个迭代比较,此算法的时间复杂度为O(mn),性能不高,此时我们便引入了KMP算法。算法理论KMP算法的核心就是求出最长相等前后缀长度,何为前缀,何为后缀?前缀:符号串左部的任意子串(或者说是字符串的任意首部),不包含字符串末尾字符原创 2021-03-14 12:54:47 · 561 阅读 · 0 评论 -
习题6-7 简单计算器 (20分)
习题6-7 简单计算器 (20分)模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例:1+2*10-...原创 2020-04-10 11:41:07 · 295 阅读 · 0 评论 -
习题4-11 兔子繁衍问题 (15分)
习题4-11 兔子繁衍问题 (15分)一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30输出样例:9首先来分析一下月...原创 2020-04-09 23:19:44 · 424 阅读 · 0 评论 -
习题4-10 猴子吃桃问题 (15分)
习题4-10 猴子吃桃问题 (15分)一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?输入格式:输入在一行中给出正整数N(1<N≤10)。输出格式:在一行中输出第一天共摘了多少个桃子。输入样例:3...原创 2020-04-09 15:53:54 · 455 阅读 · 0 评论 -
习题4-9 打印菱形图案 (15分)
习题4-9 打印菱形图案 (15分)本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。输入格式:输入在一行中给出一个正的奇数n。输出格式:输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。输入样例:7输出样例: * * * * * * * * * * * * * * * * * * * * * * * ...原创 2020-03-29 10:56:27 · 611 阅读 · 0 评论 -
习题4-8 高空坠球 (20分)
习题4-8 高空坠球 (20分)皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?输入格式:输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。输出格式:在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。题目...原创 2020-03-11 23:22:26 · 477 阅读 · 0 评论 -
习题4-7 最大公约数和最小公倍数 (15分)
习题4-7 最大公约数和最小公倍数 (15分)本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出两个正整数M和N(≤1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:511 292输出样例:73 2044解题思路最大公约数:指两个或多个整数共有约数中最大的一个。最小公倍数:两个或多个整数公有...原创 2020-03-09 23:07:30 · 1799 阅读 · 0 评论 -
习题4-6 水仙花数 (20分) 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身
习题4-6 水仙花数 (20分)水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3≤N≤7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3输出样例:153370371407#include&l...原创 2020-03-05 22:43:00 · 50042 阅读 · 11 评论 -
习题4-5 换硬币 (20分) 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
习题4-5 换硬币 (20分)将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出...原创 2020-03-05 21:12:37 · 17703 阅读 · 5 评论 -
习题4-4 特殊a串数列求和 (20分) 给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
习题4-4 特殊a串数列求和 (20分)给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。输入样例:2 3输出样例:s = 246#include<stdio.h>#include<math.h>...原创 2020-03-04 19:37:52 · 34608 阅读 · 2 评论 -
习题4-2 求幂级数展开的部分和 (20分)(多个错误分析)
习题4-2 求幂级数展开的部分和 (20分)已知函数ex可以展开为1+x+x2 /2!+x3/3!+⋯+xk/k!+⋯幂级数现给定一个实数x,要求利用此幂级数部分和求ex的近似值,求和一直继续到最后一项的绝对值小于0.00001。输入格式:输入在一行中给出一个实数x∈[0,5]。输出格式:在一行中输出满足条件的幂级数部分和,保留小数点后四位。输入样例:1.2输出样...原创 2020-03-04 16:59:12 · 950 阅读 · 3 评论 -
习题4-1 求奇数和 (15分) 本题要求计算给定的一系列正整数中奇数的和
习题4-1 求奇数和 (15分)本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。输出格式:在一行中输出正整数序列中奇数的和。输入样例:8 7 4 3 70 5 6 101 -1输出样例:116#include<stdio.h>int main(){ ...原创 2020-03-04 14:51:33 · 44383 阅读 · 16 评论 -
练习4-10 找出最小值 (20分) 本题要求编写程序,找出给定一系列整数中的最小值。
练习4-10 找出最小值 (20分)本题要求编写程序,找出给定一系列整数中的最小值。输入格式:输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。输出格式:在一行中按照“min = 最小值”的格式输出n个整数中的最小值。输入样例:4 -2 -123 100 0输出样例:min = -123#include<stdio.h>#include&l...原创 2020-03-02 23:29:44 · 20505 阅读 · 1 评论 -
练习4-7 求e的近似值 (15分)自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。
练习4-7 求e的近似值 (15分)自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。输入格式:输入第一行中给出非负整数 n(≤1000)。输出格式:在一行中输出部分和的值,保留小数点后八位。输入样例:10输出样例:2.71828180#include<stdio.h>...原创 2020-03-02 23:01:56 · 28320 阅读 · 20 评论 -
练习4-6 猜数字游戏 (15分)
猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包...原创 2020-03-01 00:14:20 · 782 阅读 · 0 评论 -
练习4-3 求给定精度的简单交错序列部分和 (15分)
本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + … 直到最后一项的绝对值不大于给定精度eps。输入格式:输入在一行中给出一个正实数eps。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。输入样例1:4E-2输出样例1:sum = 0.854457输入样例2:0.02输出样例2...原创 2020-02-29 23:27:06 · 856 阅读 · 0 评论 -
习题3-1 比较大小 (10分)本题要求将输入的任意3个整数从小到大输出
习题3-1 比较大小 (10分)本题要求将输入的任意3个整数从小到大输出。输入格式:输入在一行中给出3个整数,其间以空格分隔。输出格式:在一行中将3个整数从小到大输出,其间以“->”相连。输入样例:4 2 8输出样例:2->4->8#include<stdio.h>int main(){ int a[3],temp; for(i...原创 2020-02-26 22:09:06 · 17488 阅读 · 0 评论 -
[PTA报错]warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result
PTA刷题时总是出现如标题所示的报错——警告: 忽略‘ scanf’的返回值,用属性 warn_unused_result 声明之类的,于是对出现报错的原因和解决方法做了查阅。原因我们经常也能在编译器中看到到未处理scanf返回值的警告,但我们往往选择忽略,PTA太严格了!只有解决这个警告,无奈~首先scanf 函数的返回值反映了按照指定的格式符正确读入的数据的个数。不一定等于得到输入值的输...原创 2020-02-24 00:03:15 · 106412 阅读 · 3 评论