今天一口气写了两篇博客,这是第二篇。
2039:本题使用了引用参数写了一个“交换函数”swap。第一次提交,没有看清题目需要的数据类型,下意识地把输入数据定义为整形,这是一个习惯性地错误,反映了我做题有很大的条件发射成分,并没有仔细思考过输入。
本题使用了一个判断三边是否能组成三角形的原理,就是最大边(若三边相等,则任意一边都是最大边)小于(严格)其它两边和,就可以组成三角形了。
所以程序一开始需要对三个变量进行排序,排序只是使用了三行代码,没有使用循环,但是这三行代码的思想和冒泡是一样的。
2040:本题的程序中写了一个求个真因子之和的函数,但是第一次本地编译把返回值写成了0,这又是习惯性的错误。
除了完全平方数,整数的因子都是成对出现的,所以没有必要遍历所有的因子,只要从1开始遍历到该整数的平方根就可以了。这样可以大大减少运算量。
2041:本题可以使用递推法解决,其实结果和斐波那契数列是一样的。同时,在做计数问题的时候,要注意不重合和不遗漏。
2042:本题和2013“蟠桃记”题型一样。
2043:本题的本质是字符串处理,合格的密码需要条件,第一个条件是关于字符个数的范围,很容易用编程语言模拟;第二个条件是要判断字符串中,字符种类的个数,这时候需要4个变量,记录时候有对应的那种字符类型,如果有变量就记为1,遍历了字符后,判断4个变量的和是否大于等于3,如果是则表明符合第二个条件。
PS:本篇博客2041-2043是第二天补上的。