网页设计公司网站设计,十大软件下载大全免费,手机上如何开发软件,微网站开发需求题目描述 一个均质硬币抛n次#xff0c;求不存在连续2次为正面的方案数。 输入 每行一个正整数n#xff0c;n≤40。如果n为0#xff0c;表示输入结束#xff0c;不需要处理。 输出 每行输出一个结果#xff0c;为一个整数。 样例输入 1
2
3
0样例输出 2
3
5 解题思路… 题目描述 一个均质硬币抛n次求不存在连续2次为正面的方案数。 输入 每行一个正整数nn≤40。如果n为0表示输入结束不需要处理。 输出 每行输出一个结果为一个整数。 样例输入 1
2
3
0 样例输出 2
3
5 解题思路 本题就是用递推的方法求解。和 1331-密码 一模一样的思路点击超链接跳转到1131题解有较详细的解释这里就不赘述了。以后遇到这类问题首先考虑用递推、数学归纳法 来归纳求解
AC代码
#include stdio.hint n;
int coins[45][2];
int main()
{ // coins[i][0] 正面, coins[i][1] 反面coins[1][0] coins[1][1] 1;for (int i 2; i 40; i ){coins[i][0] coins[i-1][1];coins[i][1] (coins[i-1][0]coins[i-1][1]);}while ( scanf(%d,n) ! EOF n ! 0)printf(%d\n,coins[n][0]coins[n][1]);return 0;
}