❶ 求:c語言課設游戲青蛙過河源代碼!
設n為石墩數,m為荷葉數 ,設F[n,m]表示當有n個石墩,m個荷葉時,能跳過去的最多青蛙數,我們現在可以增加一個石墩,此時就有n+1個石墩了,把第n+1個石墩看成右岸,這樣就可以把F[n,m]個青蛙從左岸跳到第n+1個石墩上(藉助原來河裡的n個石墩,m個荷葉), 這時第n+1個石墩上就有F[n,m]個青蛙了,此時河裡還有n個空石墩,m個空荷葉,還可以幫助F[n,m]個青蛙從左岸跳到真正的右岸,此時再把第n+1個石墩看成左岸, 藉助河裡的n個石墩,m個荷葉,順利的跳到右岸青蛙的身上.至此一共可以跳過去 2*F[n,m]個青蛙.
由此可知: 關系式 F[n+1,m]=2*F[n,m]
推導: F[n,m]=2*F[n-1,m]
=4*F[n-2,m]
……
=(2^i)*F[n-i,m]
……
=(2^n)*F[0,m]
當n=0時,河裡只有m個荷葉,每個葉上只能有一個青蛙,再加上從右岸可以直接跳到左岸的一隻,所以共有m+1個青蛙,即F[0,m]=m+1;所以
F[n,m]=(m+1)*2^n
❷ C語言編程,請指教,謝謝。
#include "stdio.h"
#include "math.h"
int S(h,m,n){
int i,j; //j為一共爬的高度,i為天數
if(m<h) return 1;//如果第一天就爬到,返回一天
for(i=0;;i++){
j=(m-n)*i+m;
if(h<j) return i;;
}
}
void main(){
int h,m,n,i;
printf("請輸入h,m,n");
scanf(%d,%d,%d,&h,&m,&n);
printf("井高:"h",白天爬:"m",夜裡滑"n);
i= S(h,m,n); //調用完返回天數
printf("爬到天數為:"i);
}
❸ 急求+跪求:有一口井深h米,井底有隻青蛙,它每個白天能夠沿井壁向上爬m米...
額
(m-n)是每天爬的距離。
最後一天上爬的距離<=m,注意最後一天沒有下滑。
假設有x+1天爬出來
(m-n)*x+m>=h>(m-n)*(x-1)+m
就是解這個不等式...
這樣用c很簡單把...
代碼我不發了,樓主自己鍛煉下吧~
❹ 青蛙跳的c語言的代碼
#include <stdio.h>
int main()
{ int a=0;
while(a<=100)
{
a=a+2;
printf("%d\n",a);
}
return 0;
}
❺ 小青蛙爬井 c語言
你錯在把scanf語句放在了while裡面,而while的脫離條件又是u、n、d至少有一個為0,導致
你輸入一組正常數據時會一直在循環中出不來,循環的內容就是重復要求輸入n、u、d的值。
可以這樣改:
#include<stdio.h>
int main()
{
int n,u,d,t,s,T=0;
scanf("%d,%d,%d",&n,&u,&d);
while(1)
if((n||u||d)!=0)
break;
t=0,s=0;
while(s<n)
{
t=t+1;
s=(u-d)*t+u;
}
T=2*t+1;
printf("結果是:%d\n",T);
return 0;
}
運行結果如圖:
❻ c語言編程題"一隻青蛙掉入35米深的井中,它第一天白天往上跳6米,晚上又下滑5米
#include<stdio.h>
intmain()
{
intn=35;
floath=0,drop=5;
intday=0;
while(h<n)
{
if(day!=0)
{
h-=drop;//夜晚下滑drop米
drop/=2;
}
day++;
h+=6;//白天爬6米
}
printf("總共需要%d天 ",day);
return0;
}
❼ c語言,井底有隻青蛙,井深n米,青蛙每分鍾向上爬u米,然後休息一分鍾,這一分鍾里下滑d米,求多長時
int main(){
int n,u,d;
int s=0,t=0;
scanf("%d%d%d",&n,&u,%d);
while(s<n){
t++;
s+=u;
if(n<=s)
break;
t++;
s-=d;
}
printf("所用時間為:%d\n",t);
return 0;
}
❽ 青蛙過河 c語言問題
你這個沒法彈出輸入框啊,可以給下輸入數據嗎?