杨辉三角与斐波那契数列
//
// main.c
//
// Created by chen.cy on 2021/6/15.
//
//137846528820 C(40,20)。
//函数调用 275693057639 次。
// fib(50) 12586269025
// 函数调用 25172538049 次。
#include <stdio.h>
#include <time.h>
#include <assert.h>
long long static counter = 0;
long long C(long long n , long long m){
counter++;
if (m == 0 || m == n) {
return 1;
}
return C(n - 1, m) + C(n - 1, m - 1);
}
long long fib(int n){
counter++;
if (n < 2) {
return n;
}
return fib(n - 1) + fib(n -2);
}
#define N 10
int main(int argc, const char * argv[]) {
int w = 4;
for (int i = 0; i < N; i++) {
for (int j = 0; j < w/2 *(N - i - 1); j++) {
printf(" ");
}
for (int j = 0; j <= i; j++) {
printf("%*lld", w ,C(i, j));
}
printf("\n");
}
printf("\n");
for (int i = 0; i <= N; i++) {
printf("fib(%d) = %lld\n", i, fib(i));
}
printf("\n");
return 0;
}