《C语言》怎样爬楼梯?

Python034

《C语言》怎样爬楼梯?,第1张

楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序计算共有多少种不同的走法?

【参考解答(递归法)】

基础:楼梯有一个台阶,只有一种走法(一步登上去);两个台阶,有2种走法(一步上去,或分两次上去);

递推:有n个台阶时,设有count(n)种走法,最后一步走1个台阶,有count(n-1)种走法;最后一步走2个台阶,有count(n-2)种走法。于是count(n)=count(n-1)+count(n-2)。

可见,此问题的数学模型竟然是斐波那契数。

#include<stdio.h>int main()

{    unsigned long count(int n)   int n   unsigned long m   printf("请输入楼梯的阶数:")   scanf("%d",&n)

m=count(n)   printf("有%lu种爬楼梯的方法\n",m)   return 0

}unsigned long count (int n)

{    unsigned long f   if(n==1)

f=1   else if(n==2)

f=2   else

f=count(n-1)+count(n-2)   return(f)

}1234567891011121314151617181920212223

#includeint main(){int i,n,T,a[31]={1,1,2}scanf("%d",&T)for(i=3i<31i++) a[i]=a[i-1]+a[i-2]+a[i-3]for(i=0i

#include <stdio.h>

int count(int n)

{

int i,j,sum=0,a,c1,c2,d1,d2

if(n>0)

baifor(i=0i<=ni++)

for(j=0j<=n/2j++)

if(n==i+2*j)

{

c1=i+j

d1=1

c2=1

d2=1

for(a=0a<ia++)

c2*=c1--

d2*=d1++

printf("请输入楼梯阶数:")

scanf("%d",&n)

m=count(n)

printf("总共有%d种走法\n",m)

}

扩展资料:

C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

参考资料来源:百度百科-C语言

#include<stdio.h>

int main()

{int i,n,T,a[31]={1,1,2}

 scanf("%d",&T)

 for(i=3i<31i++)

   a[i]=a[i-1]+a[i-2]+a[i-3]

 for(i=0i<Ti++)

 {scanf("%d",&n)

  printf("%d\n",a[n])

 }  

 return 0

}