一种解法
查看原帖
一种解法
1004045
zx629楼主2025/1/8 19:36

最近跟着学校的课在学递归,就用递归做了,代码量挺少的,但是总觉得好暴力hhh
其实就是在求最小血量的那个最低点。
(主要是数和数组都开的很大,运行完内存也占得大,可能是还有更好的做法也有可能是小白还没习惯)

#include<iostream>>
using namespace std;

int blood;
long int FightWithDragon(long int n,int *a)
{
    if(n<=0) return 0;
    int now_blood = a[n-1]+FightWithDragon(n-1,a);
    blood = min(now_blood,blood);
    return now_blood;
}

int main()
{
    long int n; // the number of level
    int a[100001];
    long int need_blood;
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
    FightWithDragon(n,a);
    need_blood = abs(blood) + 1;
    cout<<need_blood<<endl;
    return 0;
}
2025/1/8 19:36
加载中...