第二次博客作业

1  目前自己学习中存在的薄弱的知识点具体有哪些?每个薄弱的知识点都是如何获知的,每个薄弱的知识点需要列举具体的例子说明。(5分)

   截止目前,我认为我的薄弱部分在于函数的调用、字符数组的处理及指针的使用不熟练。

   (1)函数调用方面。在一些代码比较长的题目中,发觉自己总是只用main函数包括所有东西,于是开始尝试写函数,但关于实参、形参及返回值的使用还不是很熟练。

   (2)字符数组方面。字符串处理函数还不能熟练调用,对字符串的处理不熟悉。

   (3)指针方面。分不清楚何时适合用指针。在发生函数调用时,有时会不清楚传递和返回的到底是地址还是值。

2  从第五章函数到第七章数组的函数题和编程题(主要是在PTA)中选出至少一道你觉得比较有挑战的题(已解决且不是奇奇的题)。写出解题报告包括:(1)题目大意;(2)解题思路;(3)代码思路,比如画出流程图;(4)核心技术总结;(5)解题过程中存在的问题,以及如何得到解决的。(5分)

(1) 给定某数字A(1A9)以及非负整数N(0N100000),求数列之和S=A+AA+AAA++AAA(N个A)。

(2)如果N取一个很大的值的话,结果会很大,即使使用long long 也会溢出。但由于每个数的所有数字都是相同的,想到可以使用一个数组来分别存储结果的每一位数,最后输出数组即为最终结果。

(3)

for(int i=0;i<x;i++)/*n.321
                                      A
                                    AA
                                  AAA
                              AAAAA
                                 .......*/

{
d += (x-i)*a; //先求第一列数字之和
b[i]=d%10; //得到结果的个位数字
d/=10; //得到要加到第二列的数字, 重复上述三步,直到第n列
}

for(int i=x-1;i>=0;i--)
cout<<b[i];  //从高位到低位输出结果

(4)核心技术:根据计算特点,利用数组完成计算

(5)问题:开始时直接使各个数字相加,出现运行超时的情况,不知如何优化。  解决:自己反复思考后上网查相关资料。

posted on 2018-12-06 23:47  .刘菲菲  阅读(95)  评论(0编辑  收藏  举报

导航