《算法笔记》codeup

    技术2023-04-12  90

    思路:

    输出的每一行分为:空格、一个0、斐波那契数列这三个部分。想清楚每一行空格的数量和斐波那契数列的项数即可。

    解答:

    #include <cstdio> using namespace std; int fib_arr[25]; int Fib(int n) { if(n == 1) return 1; else if(n == 2) return 1; else return(Fib(n - 1) + Fib(n - 2)); } void print(int num) { for(int i = 0; i <= num - 1; i++) { // 打印空格 for(int j = 1; j <= 2 * (num - i - 1); j++) { printf(" "); } // 打印一个0 printf("0 "); // 生成并打印两个斐波那契数 if(i != 0) { fib_arr[2 * i - 1] = Fib(2 * i - 1); fib_arr[2 * i] = Fib(2 * i); for(int j = 1; j <= i * 2; j++) { printf("%d ", fib_arr[j]); } } printf("\n"); } } int main() { int test_num; while(scanf("%d", &test_num) != EOF) { int num; for(int i = 1; i <= test_num; i++) { scanf("%d", &num); print(num); } } return 0; }

     

    Processed: 0.011, SQL: 9