1.N阶楼梯上楼问题
题目描述:N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(非递归)
输入:输入包括一个整数N(1<=N<90)
输出:有多组测试数据,对于每组数据,输出当楼梯阶数为N时的上楼方式个数
算法思想:到达第n阶楼梯的方式有两种:从第n-1阶楼梯走一阶;从第n-2阶楼梯走两阶。故f(n)=f(n-1)+f(n-2)
//N阶楼梯上楼问题,一次可以走一阶或者两阶,上楼方式种数
#include<stdio.h>
long long f[91];
int main(){
f[1]=1;
f[2]=2;
for(int i=3;i<=90;i++){
f[i]=f[i-1]+f[i-2];
}
int n;
while(scanf("%d",&n)>0){
printf("%d",f[n]);
}
return 0;
}
2.装错信封问题
问题描述:为n个朋友每人写了一封信,求全部装错信封的错误方式种数
输入:包含多个测试实例,每个测试实例占一行,每行包含一个正整数n(1<n<=20),n表示朋友个数
输出:对于每行输入请输出可能的错误方式数量,每个实例占用一行
算法思想:若n号信封装的是k号信封的信,m号信封装的是n号信封的信,若m和k相等,则交换两个信封内的信&#