第二次作业

  学习C++已经3个月了,在这三个月里面,我有收获但也有缺失与遗憾。

  1. 在最近的学习中,我对指针部分不是特别理解,就像指针调用函数,用指针调用二位数组等方面都不是很了解。我想,这跟我上课状态有很大的关系,觉得课程太难就注意力不能集中。在指针的学习中,我不太能理解取地址与取值在什么时候应该使用哪一个。所幸,通过观看网上公开课,我逐渐地掌握了学习的窍门。我觉得我在接下来的时间可以把对指针的漏洞给补上。

  2. 在第五章到第七章的编程题中,我觉的比较有难度的是练习7的数列求和-加强版,以下为原题目:

  

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

输入格式:

输入数字A与非负整数N。

输出格式:

输出其N项数列之和S的值。

输入样例:

1 3

输出样例:

123


以及我后来解决问题的代码:

#include <iostream>
#include<cmath>
using namespace std;
int main()
{
  long long a,n,d = 0;
  int b[200000];
  cin>>a>>n;
  for(int i=0;i<n;i++)
  {
    d=(n-i)*a+d;
    b[i]=d%10;
    d/=10;
  }
  if(d)
    cout<<d;
  for(int i=n-1;i>=0;i--)
    cout<<b[i];
  if(n==0)cout<<0;

}

  我对数组中各个元素分别赋值,从大到小先算高位数再算低位数。这道题在现在看来并没有什么难度,但在当时我对数组的赋值并不能熟练地掌握,不清楚不能在没有循环的情况下直接使用cin,导致卡了很久。

  其实这道题的难点在于用我所输入的值进行计算,还有就是在于数组的循环赋值上。我相信现在面对这种题目我已经可以熟练地解出。

  编程是一个不断熟悉,不断积累的过程。只有多花时间,多打代码,才能真正地提升自己。

  共勉                            

                                   2018. 12. 08      20:21

posted @ 2018-12-08 20:22  sherlock/holmes  阅读(99)  评论(0)    收藏  举报