美文网首页
C语言求杨辉三角与斐波那契数列

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

作者: 863cda997e42 | 来源:发表于2021-10-22 16:00 被阅读0次

杨辉三角与斐波那契数列

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

相关文章

网友评论

      本文标题:C语言求杨辉三角与斐波那契数列

      本文链接:https://www.haomeiwen.com/subject/iuxhaltx.html