當前位置:首頁 » 編程語言 » 兔子java

兔子java

發布時間: 2024-07-15 18:01:34

java紼嬪簭鍒嗘瀽錛 鍏斿瓙鐨勮勫緥涓烘暟鍒1,1,2,3,5,8,13,21....

public class Test {//鐢ㄩ掑綊娉曡$畻鍏斿瓙鐨勬彙瀛欒勫緥
static long fib(int x){
if(x>鏃忎俊2) return (fib(x-1)+fib(x-2));
else return 1;
}
public static void main(String[] args) {
for(int i=1;i<=24;i++){
long n=fib(i);
//綆楀厗鐨杞鍑虹殑鏄瀵規暟.瑕佺畻鎬繪暟鐨勬硶,*2灝辮
System.out.println("絎"+i+"涓鏈堟湁鍏斿瓙瀵規暟涓"+n);
}
}
}

② 楦 鍜 鍏斿瓙 涓鍏辨槸 =48 涓錛 浠栦滑鐨勮吙鑴氫竴鍏辨槸 =108 涓錛 璇烽棶 楦=錛 鍏斿瓙=錛熸眰Java閲屾庝箞綆楋紵鏁板﹂噷鍛錛

鏁板︼細


鍋囪撅紝鍏ㄦ槸鍏旓紝鍒錛

4x48=192鏉¤吙銆


姣斿疄闄呭氬嚭浜嗭細

192-108=84鏉¤吙銆


騫朵笖錛屽厰姣旈浮澶2鏉¤吙錛

4-2=2


鎵浠ワ紝鐩鍜愮敤澶氬嚭鐨勮吙鍘婚櫎2錛屽氨鏄楦$殑鏁扮洰浜嗐

楦=84/2=42鍙.


騫朵笖錛屼粠棰樼洰鍙鐭ラ亾錛屼竴鍏遍浮鍏48鍙銆傚嚡鍗栫函鐜板湪宸茬粡鐭ラ亾楦℃槸42鍙錛岀敤48-42錛屽垯錛

鍏=48-42=6鍙


浠g爜錛


publicclassTest

{

publicstaticvoidmain(String[]args)

{

閰嶆槍

for(intchicken=0;chicken<48;chicken++)

{

intrabbit=48-chicken;

if(chicken*2+rabbit*4==108)

{

System.out.println("楦$殑鏁伴噺:"+chicken+"鍏旂殑鏁伴噺錛"+rabbit);

}

}

}

}


③ 用java模擬龜兔賽跑,能設置比賽距離。在任意時間段內兔子的速度是隨機的,烏龜的速度是恆定的。

package test;
import java.util.Observable;
import java.util.Observer;
import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.stream.Stream;
public class Running {
public static int distance;
private static final CountDownLatch CDL = new CountDownLatch(1);
public static final void start(Animal...animals) {
if (animals != null && animals.length > 0) {
Stream.of(animals).forEach(a -> {
Thread th = new Thread(a);
th.start();
});
// register observers to each animal
for (Animal a: animals) {
for (Animal a2: animals) {
a.addObserver(a2);
}
}
CDL.countDown();
System.out.println("Go!!!!!!");
}
}
public static abstract class Animal extends Observable implements Runnable, Observer {
protected final String name;
protected int speed; // m/s
protected boolean randomSpeed;
private int remaining;
private int speedLimitation;
private Random ran;
private ScheledExecutorService es = Executors.();
protected Animal(final String name, final int speedLimitation) {
this.randomSpeed = true;
this.speedLimitation = speedLimitation;
this.ran = new Random();
this.name = name;
}
protected Animal(final int speed, final String name) {
this.name = name;
this.speed = speed;
}
@Override
public void run() {
try {
CDL.await();
} catch (InterruptedException e) {
}
es.scheleAtFixedRate(() -> {
if (randomSpeed) {
int currentSpeed = ran.nextInt(speedLimitation);
if (currentSpeed > speed) {
System.out.println(name + " 開始加速.");
} else if (speed < currentSpeed) {
System.out.println(name + " 慢了下來.");
} else {
System.out.println(name + " 繼續前進.");
}
speed = currentSpeed;
}
if (remaining == 0) {
remaining = distance - speed;
} else {
remaining -= speed;
}
System.out.println(name + " 距離終點還有" + remaining + "米.");
if (remaining <= speed) {
setChanged();
notifyObservers(name);
}
}, 0, 1, TimeUnit.SECONDS);
}
@Override
public void update(Observable o, Object arg) {
String name = (String) arg;
es.shutdownNow();
if (!this.name.equals(name))
System.out.println(name + " 停止了繼續奔跑.");
else
System.out.println(name + " 贏得了比賽!");
}
}
public static void main(String[] args) {
Running.distance = 100;
Running.start(new Rabbit("小兔兔", 5), new Rabbit("小龜龜", 2));
}
}
class Rabbit extends Running.Animal {
protected Rabbit(String name, int speedLimitation) {
super(name, speedLimitation);
}
}
class Tortoise extends Running.Animal {
protected Tortoise(int speed, String name) {
super(speed, name);
}
}

熱點內容
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:778
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:100
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:208
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513
蘋果手機清理瀏覽器緩存怎麼清理緩存 發布:2024-09-08 06:31:32 瀏覽:554
雲伺服器的優點與缺點 發布:2024-09-08 06:30:34 瀏覽:734
上傳下載賺錢 發布:2024-09-08 06:14:51 瀏覽:258