2018 Problem B 数列

本文介绍了一个使用递归函数求解斐波那契数列并输出特定图形的算法实现。通过分析图形中数字的变化规律,文章提供了一段C++代码,展示了如何根据输入的整数n生成相应的图形,适用于编程学习和算法实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题 B: 数列

时间限制: 1 Sec 内存限制: 32 MB

题目描述

编写一个求斐波那契数列的递归函数,输入n 值,使用该递归函数,输出如下图形(参见样例)。

输入

输入第一行为样例数m,接下来有m行每行一个整数n,n不超过10。

输出

对应每个样例输出要求的图形(参见样例格式)。

样例输入

1
6

样例输出

          0
        0 1 1
      0 1 1 2 3
    0 1 1 2 3 5 8
  0 1 1 2 3 5 8 13 21
0 1 1 2 3 5 8 13 21 34 55

经验总结

分析图形中的数字变化规律和循环变量的关系, 可以用实际数据高效地解决。

AC代码

#include <cstdio>
int Fib(int a)
{
	if(a == 0 || a == 1)
	   return 1;
	else 
	   return Fib(a - 1) + Fib(a - 2);
}
int main()
{
	int n, m;
	while(scanf("%d", &n) != EOF)
	{
		for(int i = 0; i < n; i++)
	    {
		    scanf("%d", &m);
		    for(int j = 0; j < m; j++)
	     	{
		    	for(int k = 0; k < (m - 1 - j) * 2; k++)
			         printf(" ");
		    	if(j != 0)
		        	printf("0 ");
		        else
		           printf("0");
		        if(j != 0)   
		        {
		        	for(int k = 0; k <= 2 * j - 1; k++)
		            {
		    	         printf("%d", Fib(k));
		    	         if(k != 2 * j - 1)
		    	         printf(" ");
		            }
		        } 
		      	printf("\n");
		    }
     	} 
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值