请各位大神指教,debug一下,谢谢!!!
查看原帖
请各位大神指教,debug一下,谢谢!!!
533488
Immortal_Xiao楼主2021/8/17 23:09

先上代码:

#include <bits/stdc++.h>
using namespace std;

struct bead // 能量珠
{
    int head;
    int tail;
};

void bead_input(int a[], int n) // 输入函数
{
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i].head;
        a[i - 1].tail = a[i].head;
    }
    a[n].tail = a[1].head;
    return;
}

int best(const bead r[], int n, int & best_test, int old_now_test = 0) // 最优方案
{
    if (now_test > best_test)
    {
        return;
    }
    int new_now_test = old_mow_test;
    bead a[105];
    memset(a, 0, n);
    for (int i = 1; i <= n; i++)
    {
        a[i] = r[i];
    }
    for (int i = 1; i <= n; i++)
    {
        now_test += a[i].head * a[i].tail * a[i].head; // 叠加记录
        a[i].tail = a[i + 1].tail; // 更行数据
        for (int j = i + 1; j <= n - 1; j++) // 更新数组
        {
            a[j] = a[j + 1];
        }
        best(a, n - 1, best_test, new_now_test); // 进行下一层递归
        for (int j = 1; j <= n; j++) // 立即回溯数组
        {
            a[j] = r[j];
        }
        new_now_test = old_new_test; // 立即回溯记录
    }
    if (!n) // 超出最后一层递归,结尾判断大小
    {
        best_test = max(best_test, now_test);
    }
    return;
}

int main()
{
    int n, best_test = -1; // n为个数,best_test为当前最佳测试数据
    bead a[105]; // 能量项链
    cin >> n;
    bead_input(a, n);
    cout << best(a, n, best_test) << endl;
    return 0;
}

编译错误,求大神纠错,最好把所有错误都debug出来,思路清晰,纠错最多,谢谢!!!

2021/8/17 23:09
加载中...