学习C++已经3个月了,在这三个月里面,我有收获但也有缺失与遗憾。
1. 在最近的学习中,我对指针部分不是特别理解,就像指针调用函数,用指针调用二位数组等方面都不是很了解。我想,这跟我上课状态有很大的关系,觉得课程太难就注意力不能集中。在指针的学习中,我不太能理解取地址与取值在什么时候应该使用哪一个。所幸,通过观看网上公开课,我逐渐地掌握了学习的窍门。我觉得我在接下来的时间可以把对指针的漏洞给补上。
2. 在第五章到第七章的编程题中,我觉的比较有难度的是练习7的数列求和-加强版,以下为原题目:
给定某数字A(1)以及非负整数N(0),求数列之和S=A+AA+AAA+?+AA?A(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
原文:https://www.cnblogs.com/sherlock77/p/10088931.html