小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?
#include <stdio.h> int Steps(int n) { //剩0台阶一个走法,剩一个台阶一种走法 //剩两个台阶两种走法,一步一步走,两步走 if(n == 0) return 0; if(n == 1) return 1; if(n == 2) return 2; //走两步的走法加上走一步的走法就是总的走法 return Steps(n-1) + Steps(n-2); } int main() { int n = 0; scanf("%d", &n); int st = Steps(n); printf("%d", st); return 0; }
#include <stdio.h> // 斐波那契数列问题 // 思路:递推 + 回归 int main() { int n; while (scanf("%d", &n) != EOF) { int f, tmp, f1 = 0, f2 = 1; for(int i = 0; i < n; i++) { f = f1 + f2; tmp = f2; f2 = f1 + f2; f1 = tmp; } printf("%d\n", f); } return 0; }
#include <stdio.h> int method(int x) { if (x > 1) return method(x - 1) + method(x - 2); return 1; } int main() { int input = 0; while (scanf("%d", &input) != EOF) { int num = method(input); printf("%d\n", num); } return 0; }