java邏輯代碼題 java邏輯面試題答案

java邏輯題

先回答你的問題:while(a.size()1)是因?yàn)橐h(huán)有個(gè)結(jié)束的條件,這個(gè)條件就是list中的人數(shù)就只剩一個(gè)人時(shí)結(jié)束循環(huán)!2,3都沒有意義,因?yàn)闆]做完!

成都創(chuàng)新互聯(lián)公司是專業(yè)的杭錦網(wǎng)站建設(shè)公司,杭錦接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行杭錦網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

樓主可以用下面的方法,我剛做的,有注釋!最后結(jié)果為436!如果不懂,可以再問我!

public class RenShu {

public static void main(String[] args) {

int peop = 500;//有500個(gè)人

boolean[] brr = new boolean[peop];//聲明一個(gè)500個(gè)元素的Boolean數(shù)組

Arrays.fill(brr, true);//默認(rèn)都為true

int count=0;//報(bào)數(shù)號(hào)

int remain=peop;//剩下的人數(shù)

int index=0;//數(shù)組下標(biāo)號(hào)

while(remain!=1){//剩下人不是一個(gè)時(shí)繼續(xù)

if(brr[index]){//該元素為false時(shí)不計(jì)數(shù)

count++;//計(jì)數(shù)

if(count%3==0){//計(jì)數(shù)為3時(shí)做以下三件事

brr[index]=false;//將該元素值改為false,為了標(biāo)志他被淘汰,不參加報(bào)數(shù)

remain--;//剩下的人數(shù)減一

count=0;//計(jì)數(shù)清零,重新報(bào)數(shù)

}

}

index++;//數(shù)組下標(biāo)增加

if(index==peop){

index=0;//如果數(shù)組下標(biāo)和人數(shù)相等,即一個(gè)循環(huán)結(jié)束,應(yīng)重新開始

}

}

for(int i=0;ibrr.length;i++){

if(brr[i]){

System.out.println(i+1);//最后打印那個(gè)唯一的true的下標(biāo)值,因?yàn)閿?shù)組從0開始,所以要加1

}

}

}

}

JAVA編程的邏輯題,大神幫下!謝謝

方法一:

import java.util.ArrayList;

import java.util.List;

public class test10 {

// 解題思路:先帶走貓,后帶走狗,再把貓帶回,把魚帶過去,最后再把貓帶過去即可

// 定義兩個(gè)集合,存放,帶過去的動(dòng)物,和剩下的動(dòng)物

static ListString there = new ArrayListString();

static ListString here = new ArrayListString();

public static void main(String[] args) {

here.add("cat");

here.add("dog");

here.add("fish");

test10 test10 = new test10();

test10.take();

}

// 判斷動(dòng)物是否安全

public boolean isSafty(ListString list) {

// 如果一個(gè)集合中同時(shí)出現(xiàn)了貓和狗,貓和魚的都認(rèn)為不安全

if (list.add("dog") list.add("cat") || list.add("cat")

list.add("fish")) {

return false;

}

return true;

}

public void take() {

// 得到要帶走的動(dòng)物

String anim = here.get(0);

// 從剩下的集合中刪除

here.remove(here.get(0));

if (anim.equals("cat")) {

// 添加到以帶過去的集合里面

there.add(anim);

// 繼續(xù)帶下一個(gè)動(dòng)物

if (here.isEmpty()) {

System.out.println();

System.out.println("最后在把" + anim + "帶走了");

return;

} else {

System.out.println("帶走了" + anim);

System.out.print("剩下:");

for (String s : here) {

System.out.print(s + " ");

}

System.out.println();

System.out.println("----------------------------");

take();

}

} else if (anim.equals("dog")) {

there.add(anim);

System.out.println("然后把" + anim + "帶走");

// 判斷是否安全,之后繼續(xù)帶下一個(gè)動(dòng)物

if (isSafty(there)) {

take();

} else {

String animal = there.get(0);

there.remove(animal);

here.add(animal);

System.out.println("然后把" + animal + "帶回");

// 繼續(xù)帶下一個(gè)動(dòng)物

take();

}

} else if (anim.equals("fish")) {

System.out.print("之后把" + anim + "帶走");

take();

}

}

}

方法二:

import java.util.ArrayList;

import java.util.Random;

/*

* 需求:

* 一位老農(nóng)帶著貓、狗、魚過河,河邊有一條船,每次老農(nóng)只能帶一只動(dòng)物過河。

* 當(dāng)老農(nóng)不和貓狗魚在一起時(shí),狗會(huì)咬貓,貓會(huì)吃魚,當(dāng)老農(nóng)和貓狗魚在一起時(shí),則不會(huì)發(fā)生這種問題。

* 編程解決貓狗魚過河問題。

* 分析:

* 定義貓,狗,魚元素.定義兩岸集合.定義方法判斷不和諧狀況.

* 步驟:

* 1.將貓狗魚抽象為三個(gè)String型變量.將兩岸抽象為兩個(gè)集合.

* 2.定義判斷是否和諧方法.

* */

public class Test10 {

public static void main(String[] args) {

//開始過河.

doTransport();

}

public static void doTransport() {

// 抽象出貓,魚,狗和兩岸.

ArrayListString arr1 = new ArrayListString();

ArrayListString arr2 = new ArrayListString();

arr1.add("魚");

arr1.add("貓");

arr1.add("狗");

// 農(nóng)夫?qū)⒁獢y帶到船上動(dòng)物.(前一字符表示農(nóng)夫當(dāng)前攜帶動(dòng)物,后一字符表示上次農(nóng)夫攜帶的動(dòng)物,為了讓農(nóng)夫不出現(xiàn)重復(fù)拿同一個(gè)動(dòng)物的情況)

System.out.println("農(nóng)夫,貓,魚,狗都在此岸,開始過河.\n");

String[] boat ={"-","-"};

while (arr1.size() 0) {

move(arr1, arr2, boat);

}

System.out.println("\n農(nóng)夫,貓,魚,狗都到達(dá)彼岸.");

}

public static void move(ArrayListString arr1, ArrayListString arr2,String[] boat) {

//農(nóng)夫船上是否有動(dòng)物,有則不需隨機(jī)選擇攜帶.

if (boat[0].equals("-")) {

int one=0;

do{

// 農(nóng)夫從此岸隨機(jī)帶上一個(gè)動(dòng)物.

one = new Random().nextInt(arr1.size());

}while(arr1.get(one).equals(boat[1]));

boat[1]=boat[0];

boat[0] = arr1.get(one);

arr1.remove(one);

}

// 判斷此岸是否和諧

if (ifNice(arr1)) {

// 此岸和諧,農(nóng)夫則將動(dòng)物送去彼岸.

arr2.add(boat[0]);

System.out.println("---農(nóng)夫帶" + boat[0] + "去彼岸 ");

//首先判斷是否將三個(gè)動(dòng)物都放彼岸,是則無需判斷是否和諧.

if(arr2.size()==3){

return;

}

// 判斷彼岸是否和諧.

if (ifNice(arr2)) {

// 彼岸和諧,農(nóng)夫則完成此次運(yùn)送.

boat[1]=boat[0];

boat[0] ="-";

System.out.println(" 農(nóng)夫單獨(dú)回此岸---");

} else {

// 彼岸不和諧,農(nóng)夫則將岸上動(dòng)物與攜帶動(dòng)物交換.送回此岸.

boat[0]=arr2.get(0);

System.out.println(" 農(nóng)夫帶" +boat[0]+ "回此岸---");

arr2.remove(0);

arr1.add(boat[0]);

boat[1]=boat[0];

boat[0]="-";

}

} else {

// 如果此岸不和諧則放回此岸.

arr1.add(boat[0]);

boat[1]=boat[0];

boat[0]="-";

}

}

public static boolean ifNice(ArrayListString arr) {// 判斷是能否共存.

if ((arr.contains("貓") arr.contains("狗"))

|| (arr.contains("魚") arr.contains("貓"))) {

return false;

} else {

return true;

}

}

}

java 邏輯題求解答

代碼如下:

import?java.util.Arrays;

public?class?App53?{

public?static?void?main(String[]?args)?{

String?s?=?"12?335?4456?111?7799?5";

//?將原字符串通過空格分割成字符串?dāng)?shù)組

String[]?numbers?=?s.split("?");

//?進(jìn)行排序

Arrays.sort(numbers,(x,?y)?-?{

//?如果?x?大于3位,截取后3位

if?(x.length()??3)?{

x?=?x.substring(x.length()?-?3,?x.length());

}

//?如果?y?大于3位,截取后3位

if?(y.length()??3)?{

y?=?y.substring(y.length()?-?3,?y.length());

}

//?轉(zhuǎn)換成整型并比較大小

return?Integer.valueOf(x).compareTo(Integer.valueOf(y));

});

//?將排序后的結(jié)果拼接成字符串

String?result?=?String.join("?",?numbers);

//?輸出結(jié)果

System.out.println("排序前:"?+?s);

System.out.println("排序后:"?+?result);

}

}

當(dāng)前題目:java邏輯代碼題 java邏輯面試題答案
標(biāo)題網(wǎng)址:http://muchs.cn/article0/doheeio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT電子商務(wù)、微信小程序、品牌網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站制作、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司