青蛙的編程
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(只)