蓝桥杯 39级阶梯 用二维数组做
有一39阶层的楼梯,有两种走楼梯方式,一次走一阶,一次走两阶。问走完有多少中可能。(要求奇数步走完)希望大神们可用二维数组做出来,不要递归法!!!!!!!!!!!!!!!!!!1
#include<stdio.h> void main() { int i,j,k=0; for(i=0;i>=0&&i<39;i++) for(j=0;j>=0&&j<20;j++) { while(i+2*j==39&&(i+j)%2==1) { k++; printf("第%d种方法:两阶:%d次,一阶:%d次。\n",k,j,i); break; } } printf("共有%d种方法",k); }
/*有一39阶层的楼梯,有两种走楼梯方式,一次走一阶,一次走两阶。问走完有多少种可能。 (要求奇数步走完又有多少种)*/ #include <stdio.h> int f(n) { if(n==1) return 1; if(n==2) return 2; else return f(n-1)+f(n-2); } void main() { int a; printf("请输入阶层数"); scanf("%d",&a); printf("走完共有%d种可能\n",f(a)); printf("要求奇数步走完有%d种可能\n",(f(a)+1)/2); }