当前位置:首页 » 编程语言 » 爬楼梯c语言实现
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

爬楼梯c语言实现

发布时间: 2023-02-02 01:16:30

① 《c语言》怎样爬楼梯

楼梯有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种爬楼梯的方法 ",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);
}

② 用C语言编程,有20级台阶的楼梯,一次可以迈一级或者俩级台阶,那么要爬完此台阶有几种方法(需要用

//兵无常势,水无常形,情景模拟,递归实现
#include<stdio.h>
intcount=0;
voidstep(ints,intt)
{
if(s<t)
{
step(s+1,t);
step(s+2,t);
}
elseif(s==t)
{
count++;
}
}
voidmain()
{
intn;
printf("Inputn:");
scanf_s("%d",&n);
step(0,n);
printf("Thetotalpathis%d ",count);
scanf_s("%c",&n);
getchar();
}
//用step函数表示爬楼梯的动作,step(爬)(所到层,总层)
//爬到了吗?没有,再爬一层或两层,
//爬到了吗?是的,方法加一。明白吗?欢迎提问

③ C语言 用递归法写爬楼梯 一次可以爬一级 可以爬两级 N级的话有多少种爬楼方法

好显然啊!
1级---1种
2级---2种
3级---3种
4级---5种
5级---8种
……

这是个斐波纳契数列
通项公式(就是N级有多少种):F(n)=[(1+√5)/2]^n /√5 - [(1-√5)/2]^n /√5
C语言求法:参看http://2wdragon.blog.sohu.com/119664614.html

④ C语言 爬楼梯的问题

用递归解决比较方便:
#include<stdio.h>

int fibonacci (int n)
{
if (n > 2)
return fibonacci(n - 1) + fibonacci(n - 2);
else
return 1;
}

int main()
{
int data[20];
int t;
int i;

printf ("Please input T and the nums: \n");
scanf ("%d", &t);
for (i=0; i<t; i++)
{
scanf("%d", &data[i]);
}
printf("The output: \n");
for (i=0; i<t; i++)
{
printf("%d\n", fibonacci (data[i]+1));
}

return 0;
}
/* 这是斐波那契算法的一个应用,你可以搜索一下 */

⑤ C语言爬楼梯

#include<stdio.h>
intmain()
{inti,n,T,a[31]={1,1,2};
scanf("%d",&T);
for(i=3;i<31;i++)
a[i]=a[i-1]+a[i-2]+a[i-3];
for(i=0;i<T;i++)
{scanf("%d",&n);
printf("%d ",a[n]);
}
return0;
}

⑥ c语言 设计 爬楼梯的方法

我是学pascal的~只说得上来算法。
你说的
爬楼梯
是指有n阶楼梯,每次可以上1,2……,p阶(1<=p<=n),问走到最上面有多少种不同的走法吧?
这个就是
递推
啊~
设上i级台阶共有f(i)种不同的方法,很简单就可以知道f(1)=1,f(2)=2……
当i大于2时,分n种情况讨论:第一步上了1级台阶,第一步上了2级台阶,……第一步上了n级台阶。
如果第一步上了1级楼梯,那么还剩下i-1级楼梯,要走完这i-1级楼梯,一共有f(i-1)种方法。
如果第一步上了2级楼梯,那么还剩下i-2级楼梯,要走完这i-2级楼梯,一共有f(i-2)种方法。
……
如果第一步上了n级楼梯,那么还剩下i-n级楼梯,要走完这i-2级楼梯,一共有f(i-n)种方法。
所以,在第一种情况下有f(i-1)种不同走法,第二种情况有f(i-2)种不同走法……这n种情况既没有重复方案,也没有遗漏,因此得出f(i)=f(i-1)+f(i-2)+……+f(i-n)
接着就行了,200阶楼梯都不成问题。

⑦ C语言问题,台阶问题编程

#include<stdio.h>

intfuck(intn,intm)
{
if(n==1||n==0)return1;
if(n<0)return0;
inttotal=0;
inti=1;
for(;i<m;++i)
{
total+=fuck(n-i,m);
}
returntotal;
}
intmain()
{
inta;
scanf("%d",&a);
intn[a];
inti;
for(i=0;i<a;++i)
{
scanf("%d",&n[i]);
}
intb;
scanf("%d",&b);
intm[b];
for(i=0;i<a;++i)
{
scanf("%d",&n[i]);
}
for(i=0;i<a&&i<b;++i)
{
printf("%d",fuck(n[i],m[i]));
}
return0;
}

没编译器,你先编译试试,应该没错

望采纳~

⑧ c语言求助:爬楼梯,可以一次一步,也可以一次两步,走n级楼梯共有多少种方法下面的程序说明地方错了

#include <stdio.h>

int count(int n)
{
int i,j,sum=0,a,c1,c2,d1,d2;
if(n>0)
for(i=0;i<=n;i++)
for(j=0;j<=n/2;j++)
if(n==i+2*j)
{
c1=i+j;
d1=1;
c2=1;
d2=1;
for(a=0;a<i;a++)
{
c2*=c1--;
d2*=d1++;
}
sum+=c2/d2;
}
return sum;
}
void main()
{
int m,n;
printf("请输入楼梯阶数:");
scanf("%d",&n);
m=count(n);
printf("总共有%d种走法\n",m);
}

⑨ 爬楼梯c语言问题,一次只能走一步或两步或三步

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

#include <stdio.h>

int count(int n)

{

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

if(n>0)

for(i=0;i<=n;i++)

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

if(n==i+2*j)

{

c1=i+j;

d1=1;

c2=1;

d2=1;

for(a=0;a<i;a++)

c2*=c1--;

d2*=d1++;

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

scanf("%d",&n);

m=count(n);

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

}

(9)爬楼梯c语言实现扩展阅读:

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

⑩ C语言 函数。可爱的小明非常喜欢爬楼梯,他有时候一次爬一个台阶,有时候一次爬两个台阶,有时候一次

#include <stdio.h>
int main()
{int n,i,a[50];
scanf("%d",&n);
for(a[0]=a[1]=1,i=2;i<=n;i++)
a[i]=a[i-1]+a[i-2];
printf("%d\n",a[n]);
return 0;
}