算法笔记
从零开始,记录算法学习的点滴。
From Zero to One.
Zeal Young
一直默默生长的知识控
展开
-
PTA A1031. Hello World for U(使用fgets注意换行符的读入)
题目描述如下: 1031Hello World for U(20point(s)) Given any string ofN(≥5) characters, you are asked to form the characters into the shape ofU. For example,helloworldcan be printed as: h d e l l...原创 2019-04-28 11:13:30 · 284 阅读 · 0 评论 -
算法笔记:PTA A1002 多项式相加
题目 1002A+B for Polynomials(25分) This time, you are supposed to findA+BwhereAandBare two polynomials. Input Specification: Each input file contains one test case. Each case occupie...原创 2019-04-21 16:26:14 · 486 阅读 · 0 评论 -
PTA A1042 Shuffling Machine(洗牌机器之妙不可言的输出)
题目内容如下: Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid "inside jobs" where employees collaborate...原创 2019-04-21 13:16:53 · 281 阅读 · 1 评论 -
PAT B1012数字分类:关于测试点5和6无法通过的问题分析
问题点: A1的条件判断,如果将能被5整除和是偶数分开判断,那么就没问题; 但是如果把它们合并在一起,用逻辑与判断,就会有问题。 两次代码如下: #include <cstdio> int main() { int n, temp; scanf("%d", &n); int arrange[5] = {0}; int counts[5]...原创 2019-04-21 09:54:01 · 1099 阅读 · 7 评论 -
PTA 1046 划拳问题(一点逻辑上的判断)
这道题之所以要记录,原因在于: 代码的实现很容易,但是逻辑上清理就需要一点点耐心了。 题目如下 1046 划拳 (15 分) 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。 下面给出甲、乙两人的划拳...原创 2019-04-12 21:31:50 · 284 阅读 · 0 评论 -
PTA B1016 “部分A+B” 通过使用字符串(字符数组)实现
题目如下 正整数A的“DA(为 1 位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A=3862767,DA=6,则A的“6 部分”PA是 66,因为A中有 2 个 6。 现给定A、DA、B、DB,请编写程序计算PA+PB。 输入格式: 输入在一行中依次给出A、DA、B、DB,中...原创 2019-04-12 20:47:55 · 241 阅读 · 0 评论 -
PTA B1032:数组使用的惯性思维导致的错误
原题如下 1032 挖掘机技术哪家强 (20 分) 为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。 输入格式: 输入在第 1 行给出不超过 10 5 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格...原创 2019-04-12 17:44:11 · 276 阅读 · 0 评论 -
算法记录:关于scanf输入疏漏导致的错误(附一个结构体的例题)
明确一点,用scanf进行输入,一定要明确输入到哪里,也就是告诉scanf地址的位置,所以就需要有取地址符&。而对于数组名而言,数组名本身就是地址,所以不需要&。但是如果是数组的某一项,那就必须要有&了!否者程序会死在那里直到自动退出。 这是很基本很基本的操作,但是大意失荆州啊! 一道例题 题目描述 设有若干个人员的数据,其中包含学生和教师。学生的数据中...原创 2019-04-12 14:23:40 · 356 阅读 · 0 评论 -
算法记录:直接比较字符的数值大小
### 题目类似于 从键盘上输入3个字符串,求出其中最大者。 输入 输入3行,每行均为一个字符串。 输出 一行,输入三个字符串中最大者。 ### 思考与纠结点 字符在计算机中是以ASCII码存在的,所以肯定有数值的大小关系,所以尝试直接进行加和,**但是,发现出问题了!!!** 如下: #include <cstdio> #include <cstring&g...原创 2019-04-07 19:29:10 · 1557 阅读 · 0 评论 -
算法记录:用二维数组实现“杨辉三角”的输出
题目 按要求输入如下格式的杨辉三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 最多输出10层 实现的方法有很多,我想到的算是比较简单的一种,只需要一个数组加循环语句就行。 嗯,这是算法学习初期的水平吧~ #include <cstdio> int main() { int n; scanf...原创 2019-04-07 17:00:23 · 1686 阅读 · 1 评论 -
算法记录:求圆周率pi的近似值中遇到的小问题。
题目 求圆周率PI的近似值,直到发现某一项的绝对值小于10-6为止(该项不累加)。 要求输出的结果总宽度占10位,其中小数部分为8位。 程序中使用浮点型数据时,请定义为双精度double类型。 如果需要计算绝对值,可以使用C语言数学库提供的函数fabs,如求x的绝对值,则为fabs(x).; 用到的用圆周率公式如下: π = (4/1) - (4/3) + (4/5) - (4/7) + ...原创 2019-04-07 10:41:31 · 686 阅读 · 0 评论