當前位置:首頁 » 編程語言 » c語言求台階

c語言求台階

發布時間: 2022-07-07 04:07:06

c語言階梯問題,求教各位大佬啊,剛學C語言,希望大佬能用循環語句死算出來的方法題目如圖。

這個不是C語言的內容,是概率統計,C語言只是實現計算的語言工具。
要解決這個問題,需要用到概率統計,建立概率統計的演算法結構:
首先要選走兩步的台階,剩下的就是一步,兩台階44 /2 = 22,最多22步,分別是0個兩步,一個兩級,二個,三個...22個兩級,所以是C(22, 0) + C(22,1)+...+C(22,22)的演算法, 結果是2的22次冪。對於偶數n = N/2,結果等於2(n次冪)
如果N是奇數,那麼要先計算n=(N-1)/2的步數,再乘以N,結果等於 N * 2(n次冪)
C代表組合的概率數,用循環做
C(6,2) = 6 * 5/(2*1)=15, C(6,3) =6*5*4/(3*2*1)=20,依次類推。必要寫一個這樣的函數:int Combin(int Arg1, int Arg2){}

int main(){
int Result = 0, i, n, m;
scanf("%d", m); //輸入m

n = m /2; //取階數
m = (m %2 == 0 ) ? 1 : m; //如果偶數,那麼單一倍數,否則不變
for (i:=0; i <= n; ++i){ Result = Result + Combin(n, i); }
return Result * m;
}

⑵ C語言數據結構,解法二解決台階問題,請問題目中map[n]這個數組的初值是什麼希望大神幫幫忙

解法二的程序實現:
要求第n級台階走法數:
int n,count;
scanf("%d",&n);
int map[n+1];
for(i=0;i<=n;i++)
map[i]=-1;
count=countWaysDP(n,map);
printf("%d\n",count);

⑶ C語言 台階問題

1、void fun(char *pvDest, const char *pvSrc, unsigned int uiCopyLen)
{
int i =uiCopyLen;
char *src_P,*dest_P;
src_P = pvSrc;
dest_P = pvDest;
int len=strlen(pvSrc);
if(len >= uiCopyLen) {
for(i=0;i<uiCopyLen;i++)
{
*dest_P = *src_P;
src_P++;
dest_P++;
}
}
}

2、妨設有n階台階,既然一次只能走一步或2步或3步,那麼假設現在僅剩下最後一步要走,
有三種情況:
一 只需要走一步,這時已經走了(n-1)階,走法與走n-1階相同,有f(n-1)階走法;
二 只需要走兩步,同上分析有f(n-2);
三 只需要走三步,有f(n-3);
所以走n階台階有f(n)=f(n-1)+f(n-2)+f(n-3)種走法;
很明顯,走1階台階有1種方法;
走2階有兩種走法;
走3階有4種走法,如下:1 1 1 1 2 2 1 3;
所以我列出總台階數與走法的對應表:
1 2 3 4 5 6 7 8 9 10
1 2 4 7 13 24 44 81 149 274
所以有274種走法,是不是不可思議啊
程序實現如下:
unsigned int fun(unsigned int n)
{
if(n==1)
return 1;
else if(n==2)
return 2;
else if(n==3)
return 4;
else return fun(n-1)+fun(n-2)+fun(n-3);
}
另外,虛機團上產品團購,超級便宜

⑷ C語言 求多少階梯 的編程思路

給你思路!
for(i=1;!(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6==5&&i%7==0);i++);
可以改為for(i=7;!(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6==5);i+=7);(你知道優勢);
意思是開始i=7;然後判斷 !(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6==5)是否成立;也就是若每步跨2 階,最後剩下1 階;若每步跨3 階,最後剩2 階;若每步跨
4 階,最後剩3 階;若每步跨5 步,最後剩4 階;若每步跨6 階,最後剩5 階.成立退出不然i加7(若每步跨7 階恰好走完)
也就是i重7開始一直到第一個滿足條件的數退出!!

⑸ c語言:求愛因斯坦台階問題的在范圍內的最大值,謝謝大神

既然是找最大台階數,i從1到1000找就不妥了,i應該從999開始向下找,找到第一個滿足條件的i,就輸出i,結束循環。

改一下:

#include<stdio.h>intmain()//既然返回值,main定義為int型
{
inti=999;//改為i=999
while(i>0)//i<1000改為i>0
{
if(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6==5&&i%7==0)
{
printf("%d ",i);
break;//添加中斷語句,退出循環
}
i--;//i++改為i--
}return0;//漏了分號
}

⑹ 用C語言編寫程序計算階梯數

#include<stdio.h>
main()
{inti=2;
while(1){
i++;
if(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6==5&&i%7==0)
break;
}
printf("%d",i);
}

如圖所示,望採納。。。。。。

⑺ c語言計算走階梯、

#include<stdio.h>
intf(intn)
{
if(n==1)return1;
elseif(n==2)return2;
elseif(n<3)return0;
else
{
returnf(n-1)+f(n-2);
}
}
voidmain()
{
intn;
printf("請輸入樓梯階數: ")
scanf("%d",&n);
printf("%d ",f(n));
}

⑻ 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語言編程 台階問題

這是一道高精度的題目。
首先,題目要求每次允許上一個或兩個台階,實際上每個樓梯只要把前兩個樓梯的值相加就可以了(也可以認為是一個斐波那契數列),但是100個樓梯會超出long long 只能使用高精度了。

或者還可以使用通項公式(高中內容)

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726