青蛙的编程
A. 一只青蛙一张嘴两只眼睛四条腿 六只青蛙 多少只腿 (程序编程)
program 11;
var n:integer
begin
readln(n);
writeln(n,n*2,n*4);
end.
B. c语言问题 过河
sunlight12346正解,不过还可以优化一下
构造一个updateMin函数,功能为,计算青蛙从x开始跳到L所需要踩的石子数,如果结果比当前计算得到的最小数curMin小,则返回计算结果,如果大于等于curMin,则返回curMin,通过递归计算最终的最小值。可以稍作剪枝,如果递归过程中,已踩的石子数stepedStNum已经大于等于curMin,那么就返回curMin,不必要再继续计算下去。
#include <stdio.h>
void main()
{
int x, s, t, l, curMin, stoneNum, i, temp;
int stoneLoc[100]={0};
int stepedStNum = 0;
x = 0;
printf("Input the length of bridge:");
scanf("%d",&l);
printf("Input the range of distance:");
scanf("%d%d",&s,&t);
printf("Input the number of stone:");
scanf("%d",&stoneNum);
for ( i=0; i<stoneNum; i++)
{
scanf("%d", &stoneLoc[i]);
}
curMin = l;
curMin = updateMin(x, stepedStNum, s, t, l, stoneLoc, stoneNum, curMin);
printf("%d", curMin);
}
int updateMin(int x, int stepedStNum, int s, int t, int l, int stoneLoc[], int stoneNum, int curMin)
{
int i = 0;
if (x >= l)
{
return stepedStNum;
}
for (i=0; i<stoneNum; i++)
{
if (stoneLoc[i] == x)
{
stepedStNum++;
break;
}
}
if (stepedStNum >= curMin)
{
return curMin;
}
for (i=t; i>=s; i--)
{
curMin = updateMin(x+i, stepedStNum, s, t, l, stoneLoc, stoneNum, curMin);
}
return curMin;
}
C. 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;
}
D. 青蛙过河vb编程思路
没有用任何语言编写,是纯数学推导。
设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
E. 写出青蛙歌谣的java编程“一只青蛙两条腿,扑通扑通跳下水,…”
不就是一个for循环搞定吗?
import java.util.Scanner;
public class test{
//定义青蛙的数量
private static int flogNum = 0;
//递归输入青蛙的数量
private static void inputFlogNumber(){
System.out.print("请输入青蛙的数量:");
//因为输入不是数字的时候会出现异常,所以加try...catch..代码块
try {
Scanner inputNum = new Scanner(System.in);
flogNum = inputNum.nextInt();
//青蛙的数量不能小于0,否则递归调用该方法
if (flogNum < 1) {
System.out.println("青蛙数量不能小于1!,请重新输入!");
System.out.println("");
inputFlogNumber();
}
//当输入满足条件的时候输出
for (int i = 1; i <= flogNum; i++) {
System.out.println( i +"只青蛙"+i * 2+"条腿,扑通扑通跳下水,");
}
//当出现异常时候的处理(输入一个非整数或不是个整数时),提示错误然后递归调用方法
} catch (Exception e) {
System.out.println("");
System.out.println("你输入的不是数字!请重新输入!");
inputFlogNumber();
}
}
public static void main(String[] args) {
inputFlogNumber();
}
}
F. 青蛙爬井怎么编程!求过程
跳的高度用正数,滑落的距离用负数,用-1的n次方控制符号,其中n指的是第n次位置变化。
G. java编程,青蛙跳井问题
public class Demo
{
public static void main(String[] args)
{
int deep=20,up=3,down=2,days=0;
while(deep>=3)
{
deep-=1;
days++;
}
System.out.println("青蛙需用"+days+"天才能从井中爬出!");
}
}
H. 六只青蛙 多少只腿 (程序编程) 一只青
1只青蛙4条腿 ,
六只青蛙 (24)只腿
6x4
=24(只)