山东理工——1018

骨牌铺方格

Problem Description

在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
在这里插入图片描述
Input

输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0< n<=50)。

Output

对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。

Sample Input

1
3
2

Sample Output

1
3
2
:斐波那契数列的应用,值得注意的是如果当n为50时,其值为“20365011074”超出了int 的范围,这里应用long long 或者unsigned long long
示例代码:

#include<iostream>
using namespace std;
int main(void)
{
	unsigned long long sc[55];
	int n, i;
	sc[1] = 1;
	sc[2] = 2;
	for (i = 3; i <= 55; i++)
		sc[i] = sc[i - 1] + sc[i - 2];
	while (cin >> n)
	{
		cout << sc[n] << endl;
	}
	return 0;
}
### 山东理工大学数据结构链表教学资源 山东理工大学在数据结构的教学过程中,涉及到了多个与链表相关的实验和题目设计。通过分析已有的参考资料[^1][^3],可以发现该校注重实践操作能力的培养,尤其是在单链表的操作上。 #### 单链表的基础构建 根据引用中的描述,在《数据结构实验之链表一》中提到的任务是基于输入的一系列整数来创建并遍历一个单链表。这一部分的内容主要帮助学生理解如何动态分配内存以及掌握基本节点的连接方式。具体实现可以通过如下代码完成: ```c #include<stdio.h> #include<stdlib.h> typedef struct Node { int data; struct Node* next; } Node; Node* createList(int n) { Node *head = NULL, *tail = NULL; for (int i = 0; i < n; ++i) { int val; scanf("%d", &val); Node* newNode = (Node*)malloc(sizeof(Node)); newNode->data = val; newNode->next = NULL; if (!head) head = tail = newNode; else { tail->next = newNode; tail = newNode; } } return head; } void traverseAndPrint(Node* head){ while(head != NULL){ printf("%d ", head->data); head = head->next; } } ``` 此代码片段展示了如何读取一组整数值,并将其按顺序存入到新建立的单向链表之中。 #### 链表拆分的应用实例 进一步来看,《数据结构实验之链表五:单链表的拆分》则提出了更高层次的要求——即把原始列表分割成分别只含偶数项与奇数项的新列表。这种练习不仅加深了对于指针管理的理解,还锻炼了解决实际问题的能力。 以下是解决上述需求的一个可能方案: ```c // 定义函数用于分离链表... Node* splitEvenOddLists(Node* originalHead, Node** oddHeadRef){ // 实现逻辑省略... } ``` 以上方法未完全展示出来是因为它需要更详细的算法步骤说明才能完整呈现其功能。 #### 考试大纲提及内容 另外值得注意的是,在山东理工大学发布的2019年硕士研究生入学考试大纲里也提到了关于数据结构方面的考察要点[^2]。虽然具体的章节没有明确指出是否包含链表相关内容,但从以往经验推测,作为基础知识点之一,“线性表及其应用”必然会被覆盖其中。 ### 结论 综上所述,无论是本科阶段还是研究生层面的学习计划安排当中,都可以看到围绕着“链表”的一系列理论学习与动手实操相结合的设计思路贯穿始终。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值