分巧克力【来源:CSDN线上编程挑战赛】——递归,费波那奇数列,迭代

简介: /*====================================================================== 儿童节快到了,班长想要给班上的每个同学给一个巧克力, 巧克力的形状是一个宽为2,长为n的长方形,由于巧克力太贵, 班长就想把这个大块的巧克力分成...
/*======================================================================
儿童节快到了,班长想要给班上的每个同学给一个巧克力,
巧克力的形状是一个宽为2,长为n的长方形,由于巧克力太贵,
班长就想把这个大块的巧克力分成许多 1*2(宽*长)的小块巧克力,
这样每个人都能得到一份1*2的巧克力,现在给定巧克力的长为
正整数n(1<=n<=91),请你判断对于这 个2*n的巧克力有多少种不同的分法?

分析:
这个其实就是考查费波纳奇数列。
考虑第一块的分法有如下两种选择:(横放或者竖放)

假设用f(n)表示长度为n的时候所有不同分法的数量,则
f(1)=1;
f(2)=2;
f(n)=f(n-1)+f(n-2)………………n>=3
题目输入n计算并输出f(n),所以可以直接用递归去解。
再看看,这个和费波那奇数列是一个样的,用迭代其实也可解决的。 ========================================================================
*/
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,i;
 5     long n1=1;
 6     long n2=2;
 7     long c=n1+n2;
 8     scanf("%d",&n);
 9     if(n==1) printf("%ld\n",n1);
10     else if(n==2) printf("%ld\n",n2);
11     else
12     {
13         for(i=4;i<=n;i++)
14         {
15             n1=n2;
16             n2=c;
17             c=n1+n2;
18         }
19         printf("%ld\n",c);
20     }
21     return 0;
22 }

 

相关文章
|
2月前
|
存储 定位技术
【天梯赛】L2-048 寻宝图 (DFS做法)
遇到一个非'0'字符(也就是'1'和 宝藏'2'到'9')就让ans++,同时将这个非'0'字符染色为'0',然后往四个方向(上、下、左、右)搜索,这里的目的是那一片岛屿(也就是那一片为'1'的部分)都染色为‘0’。本题就请你统计一下,给定的地图上一共有多少岛屿,其中有多少是有宝藏的岛屿。为了判断有宝藏的岛屿,这里我开了一个全局变量f来判断这一片岛屿是否有宝藏(也就是有无字符'2'-'9'),当搜到字符'2'~'9'时就将f标记为1。在一行中输出 2 个整数,分别是岛屿的总数量和有宝藏的岛屿的数量。
31 5
|
4月前
日拱一卒,月进一步(6)(杨辉三角2)
119. 杨辉三角 II - 力扣(LeetCode)
34 0
|
4月前
每日一题!如约而至!(图片整理,寻找数组的中心下标)
每日一题!如约而至!(图片整理,寻找数组的中心下标)
28 0
|
10月前
|
算法 网络架构
代码随想录算法训练营第三十三天 | LeetCode 1005. K 次取反后最大化的数组和、134. 加油站、135. 分发糖果
代码随想录算法训练营第三十三天 | LeetCode 1005. K 次取反后最大化的数组和、134. 加油站、135. 分发糖果
50 0
|
算法 Java Python
【算法模板】DFS秒杀模板—附练习题(阳光号启航)(一)
【算法模板】DFS秒杀模板—附练习题(阳光号启航)(一)
【算法模板】DFS秒杀模板—附练习题(阳光号启航)(一)
|
算法 索引
代码随想录训练营day34| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果...
代码随想录训练营day34| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果...
|
机器学习/深度学习 算法 图计算
代码随想录训练营day59| 503.下一个更大元素II 42. 接雨水
代码随想录训练营day59| 503.下一个更大元素II 42. 接雨水
|
人工智能 JavaScript C++
蓝桥杯统计子矩阵前缀和C++(附图文超详细讲解)(保姆级)
蓝桥杯统计子矩阵前缀和C++(附图文超详细讲解)(保姆级)
|
安全 C++
CSDN三道简单题:合并检测、星期一、特别数的和
CSDN三道简单题:合并检测、星期一、特别数的和
124 0
CSDN三道简单题:合并检测、星期一、特别数的和
|
机器学习/深度学习 机器人 API
【蓝桥杯省赛】冲刺练习题【经典题目练习】倒计时【01】天(准考证组委会已下发,请查询)-1
【蓝桥杯省赛】冲刺练习题【经典题目练习】倒计时【01】天(准考证组委会已下发,请查询)
105 0
【蓝桥杯省赛】冲刺练习题【经典题目练习】倒计时【01】天(准考证组委会已下发,请查询)-1