当前位置:首页 » 编程语言 » c语言爬楼梯

c语言爬楼梯

发布时间: 2022-10-05 22:45:37

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语言走楼梯

递归:
上n级楼梯必须先上n-1级楼梯,再step=2
如果step=1,就相当于先上n-1级楼梯了
或者先上n-2级楼梯,再step=1
//f(n)=f(n-1)+f(n-2)
//f(1)=1
f(2)=2
#include
"stdafx.h"
#include
<stdio.h>
int
f(int
n)
{
if(n==1)
return
1;
else
if(n==2)
return
2;
else
if(n<3)
return
0;
else
{
return
f(n-1)+f(n-2);
}
}
void
main()
{
int
n;
scanf("%d",&n);
printf("%d\n",f(n));
}

⑶ 用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级楼梯共有多少种方法下面的程序说明地方错了

#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语言爬楼梯

#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语言问题,一次只能走一步或两步或三步

#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);

}

(6)c语言爬楼梯扩展阅读:

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

⑺ 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;
}
/* 这是斐波那契算法的一个应用,你可以搜索一下 */

热点内容
循迹小车算法 发布:2024-12-22 22:28:41 浏览:82
scss一次编译一直生成随机数 发布:2024-12-22 22:04:24 浏览:956
嫁接睫毛加密 发布:2024-12-22 21:50:12 浏览:975
linuxbin文件的安装 发布:2024-12-22 21:46:07 浏览:798
vlcforandroid下载 发布:2024-12-22 21:45:26 浏览:664
电脑做网关把数据发送至服务器 发布:2024-12-22 21:44:50 浏览:432
新华三代理什么牌子的服务器 发布:2024-12-22 21:33:21 浏览:342
欢太会员密码是什么 发布:2024-12-22 20:57:28 浏览:74
sqllocaldb 发布:2024-12-22 20:07:08 浏览:126
如何找到我的服务器 发布:2024-12-22 19:52:14 浏览:301