兔子java-ag真人国际官网
① 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);
}
}