A1:薄弱的知识点:

1函数的递归调用   每次做一些机械循环的题目知道可以用函数的递归调用就是不会用,不知道怎么写,知道意思打不出来。

2字符串数组  感觉写的乱七八糟的 

3指针与数组,指针与字符串   指针指向了地址,带上*符号  被引用的带上&  这些符号乱乱的 还有带上符号的代表各种意思 目前还有待记忆理解

A2

7-2 数列求和-加强版 (10 分)
给定某数字A(1≤A≤
输入格式:
输入数字A与非负整数N。
输出格式:
输出其N项数列之和S的值。
输入样例:
1 3
输出样例:
123

一题目大意
求算式S=A+AA+AAA++AAA(N个A)

二解题思路

用笔算算式求解      

                A

             A A 

          A A A 

        .........

    +A..........A

-----------------------

            s

三代码思路

把各个位置的数字打出来

考虑进位问题

四核心技术总结

要做出一道数学题目就要想算法,找到算法翻译即可

五如何解决

第一次我想的算法不是这个,如下:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
 int A,N,s=0;
 cin>>A>>N;
 for(int i=1;i<=N;i++)
 s=s+((pow(10,i)-1)/9)*A;
 cout<<s;
 return 0;
}

发现部分正确,请教师姐后说是N的取值范围很大,超出了范围,这个算法不行

后面就想其他算法,经过师姐的指导找到了笔算的这种算法。

#include<iostream>
using namespace std;
int main(void)
{
    int A, N,flag,temp;
    long j=0;
    int *num;
    cin >> A >> N;
    if (N == 0)
    {
        cout << N;
    }
    else
    {
        num = new int[N];
        flag = 0;
        for (int i = N; i >= 1; i--)
        {
            temp = A*i + flag;
            flag = temp / 10;
            num[j] = temp % 10;
            j++;
        }
        if (flag > 0)
        {
            num[j] = flag;
        }
        else
        {
            j--;
        }
        for (int i = j; i >= 0; i--)
        {
            cout << num[i];
        }
        delete[] num;
    }
    
    return 0;
}