C语言求杨辉三角与斐波那契数列

杨辉三角与斐波那契数列

//
//  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;
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容