早上打开荒野乱斗,发现了战力能量的一个规律
1级 需要 20能量
2级 需要 30能量
3级 需要 50能量(20+30)
...
很简单地能列出一个规律
f(n) = f(n-1) + f(n-2)
然后就能用递归求了吧(那如果是人自己算,能找出规律方程么?)
到现在我才能真切地感受到算法老师上课的内容,因为我觉得老师真的讲的太枯燥了,当我自己发现问题,想去解决时,就会显得很有趣
#include<stdio.h>
int preTwoAdd(int n);
main(){
//输出8级时所需所有能量
int sum = preTwoAdd(8);
printf("%d",sum);
}
int preTwoAdd(int n){
//递归
if (n > 2) {
return preTwoAdd(n - 1) + preTwoAdd(n - 2);
}
//等级1需要20能量
if (n == 1) {
return 20;
}
//等级2需要30能量
if (n == 2){
return 30;
}
return 0;
}

image.png
想了好一会才把这个写出来。
而且C忘光了,我一直printf(sum),我吐了!