早上打開荒野亂斗,發(fā)現(xiàn)了戰(zhàn)力能量的一個規(guī)律
1級 需要 20能量
2級 需要 30能量
3級 需要 50能量(20+30)
...
很簡單地能列出一個規(guī)律
f(n) = f(n-1) + f(n-2)
然后就能用遞歸求了吧(那如果是人自己算,能找出規(guī)律方程么?)
到現(xiàn)在我才能真切地感受到算法老師上課的內(nèi)容,因為我覺得老師真的講的太枯燥了,當我自己發(fā)現(xiàn)問題,想去解決時,就會顯得很有趣
#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),我吐了!