题目地址
个个都说递归,可是我有点抗拒递归。好像递归和递推的差别一个是自顶向下,一个是自下向顶,这道
递归不难,可是这个递归,还是要递归到最底,和递推的差别是什么呢,递推需要打表这个差别?
递归代码
#include <iostream>
using namespace std;
int Recurse(int n) {
if(n == 1) {
return 4;
}
else {
return (Recurse(n - 1) - 1) * 2;
}
}
int main() {
int n;
cin >> n;
while(n--) {
int a;
cin >> a;
cout << Recurse(a) << endl;
}
return 0;
}
递推代码
#include <stdio.h>
int main(void) {
int N, num;
scanf("%d", &N);
for(int i = 0; i < N; i++) {
int sheep = 3;
scanf("%d", &num);
for(int i = 0; i < num; i++) {
sheep = (sheep - 1) * 2;
}
printf("%d\n", sheep);
}
}