當前位置:首頁 » 編程語言 » 爬樓梯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;
}