❶ 求: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语言问题
你这个没法弹出输入框啊,可以给下输入数据吗?