修改密码

【2024课程】零基础学会C++编程课程

成品课程

陈远龙老师主讲 & 答疑

课程题单 - T1000

未购买 · 可先试学25节课

课程目录展开/折叠

第28课 数组(刷题课)

播放快捷键

播放/暂停:空格(或鼠标单击)      全屏:F(或鼠标双击)      退出全屏:Esc

快进10 / 30 / 60秒:方向键→ / Ctrl + 方向键→ / Shift + 方向键→

快退10 / 30 / 60秒:方向键← / Ctrl + 方向键← / Shift + 方向键←

本节课讲解配套PPT&板书:

本节课讲解到的源代码

源代码下载:第28课 数组(刷题课)-源代码下载

1. P1032-求一组数的和-1
#include <bits/stdc++.h>
using namespace std;

// int sum; // 未初始化的全局变量默认为0 
int main()
{
    int n;
    cin >> n;
    int sum = 0; // 局部变量未显式的初始化就是随机值 
    for (int i = 0; i < n; i ++)
    {
        int temp;
        cin >> temp;
        sum += temp;
    }
    cout << sum;

    return 0;
}
2. P1032-求一组数的和-2
#include <bits/stdc++.h>
using namespace std;

int a[105]; 

int main()
{
    int n;
    cin >> n;
    // int a[n]; // VLA C99
    // cout << "hello" << endl; 
    for (int i = 0; i < n; i ++)
    {
        cin >> a[i];
    }

    // 累加
    int sum = 0;
    // 基于范围的for循环
    /*
    for (const int &x : a)
    {
        sum += x;
    }
    */
    for (const auto &x : a) // for (int i = 0; i < n; i ++)
    {
        cout << x << endl;
        sum += x;
    }    
    cout << sum;

    return 0;
}
3. P1032-求一组数的和-3
#include <bits/stdc++.h>
using namespace std;

int a[105]; 

int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i ++)
    {
        cin >> a[i];
    }

    // 累加
    int sum = 0;
    for (int i = 1;i <= n; i ++)
    {
        sum += a[i];
    }
    cout << sum;

    return 0;
}
4. P1103-数组中增加一个元素-1
#include <bits/stdc++.h>
using namespace std;

int a[105];
int n;

int main()
{
    cin >> n;
    // 输入值到数组中 
    for (int i = 0; i < n; i ++)
    {
        cin >> a[i];
    }
    int i, x;
    cin >> i >> x;

    if (0 <= i && i <= n)
    {
        // 模拟增加一个元素(移动 + 覆盖)
        for (int j = n - 1; j >= i; j --)
        {
            a[j + 1] = a[j];
        }

        a[i] = x;
        n ++;       
    }

    for (int i = 0; i < n; i ++)
    {
        cout << a[i] << ' ';
    }

    return 0;
}
5. P1087-斐波那契数列前n项-1
#include <bits/stdc++.h>
using namespace std;

long long a[55] = {0, 1, 1}; // 1. 初始状态 
// int a[55] = {0, 1, 1};

int main()
{
    int n;
    cin >> n;
    // a[i] = a[i - 1] + a[i - 2]

    for (int i = 3; i <= n; i ++) // 3. 停止条件 
    {
        // 2. 递推过程 
        a[i] = a[i - 1] + a[i - 2];
    }

    for (int i = 1; i <= n; i ++)
    {
        cout << a[i] << ' ';
    }

    return 0;
}
6. P1105-斐波那契数列的第n项-1
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 1e6 + 5;
const int MOD = 1007;
// long long a[MAXN] = {0, 1 % MOD, 1 % MOD};
int a[MAXN] = {0, 1 % MOD, 1 % MOD};

int main()
{
    int T;
    cin >> T;

    while (T--) // T组测试数据 
    {
        int n;
        cin >> n;
        for (int i = 3; i <= n; i ++)
        {
            a[i] = (a[i - 1] + a[i - 2]) % MOD;
            // a[i] = (a[i - 1] % MOD + a[i - 2] % MOD) % MOD;
        }
        cout << a[n] << endl;

    }

    return 0;
}
7. P1105-斐波那契数列的第n项-2
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 1e6 + 5;
const int MOD = 1007;
// long long a[MAXN] = {0, 1 % MOD, 1 % MOD};
int a[MAXN] = {0, 1 % MOD, 1 % MOD};

int main()
{

    for (int i = 3; i <= MAXN; i ++)
    {
        a[i] = (a[i - 1] + a[i - 2]) % MOD;
    }

    int T;
    cin >> T;

    while (T--) // T组测试数据 
    {
        int n;
        cin >> n;
        cout << a[n] << endl;
    }

    return 0;
}

本节课答疑

建议大家有问题先通过AI答疑(比如:DeepSeek 等),AI时代需要学会使用AI辅助学习

陈远龙老师视频讲解:如何使用DeepSeek进行答疑?

通过AI未能获得满意解答的,可以联系陈远龙老师答疑

目录