本文目录一览:
- 1、Java循环判断逻辑问题
- 2、java逻辑题
- 3、JAVA编程的逻辑题,大神帮下!谢谢
- 4、JAVA逻辑运算问题
- 5、使用java语言理解程序逻辑?
- 6、JAVA逻辑题 1-1000输出个位和十位和千位不含7的数
Java循环判断逻辑问题
boolean flag=false;
if(alist!=null alist.size()!=0){
for(int i=0;ialist.size();i++){
A a=(A)alist.get(i);
int m=a.getB();
if(m!=3){
flag=true;
if(m==1){
resp.sendRedirect("you1.htm");
break;
}else if(m==2){
resp.sendRedirect("you1.htm");
break;
}
}
}
if(!flag) resp.sendRedirect("no.htm");
}
else{resp.sendRedirect("no.htm");}
java逻辑题
先回答你的问题:while(a.size()1)是因为要循环有个结束的条件,这个条件就是list中的人数就只剩一个人时结束循环!2,3都没有意义,因为没做完!
楼主可以用下面的方法,我刚做的,有注释!最后结果为436!如果不懂,可以再问我!
public class RenShu {
public static void main(String[] args) {
int peop = 500;//有500个人
boolean[] brr = new boolean[peop];//声明一个500个元素的Boolean数组
Arrays.fill(brr, true);//默认都为true
int count=0;//报数号
int remain=peop;//剩下的人数
int index=0;//数组下标号
while(remain!=1){//剩下人不是一个时继续
if(brr[index]){//该元素为false时不计数
count++;//计数
if(count%3==0){//计数为3时做以下三件事
brr[index]=false;//将该元素值改为false,为了标志他被淘汰,不参加报数
remain--;//剩下的人数减一
count=0;//计数清零,重新报数
}
}
index++;//数组下标增加
if(index==peop){
index=0;//如果数组下标和人数相等,即一个循环结束,应重新开始
}
}
for(int i=0;ibrr.length;i++){
if(brr[i]){
System.out.println(i+1);//最后打印那个唯一的true的下标值,因为数组从0开始,所以要加1
}
}
}
}
JAVA编程的逻辑题,大神帮下!谢谢
方法一:
import java.util.ArrayList;
import java.util.List;
public class test10 {
// 解题思路:先带走猫,后带走狗,再把猫带回,把鱼带过去,最后再把猫带过去即可
// 定义两个集合,存放,带过去的动物,和剩下的动物
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();
}
// 判断动物是否安全
public boolean isSafty(ListString list) {
// 如果一个集合中同时出现了猫和狗,猫和鱼的都认为不安全
if (list.add("dog") list.add("cat") || list.add("cat")
list.add("fish")) {
return false;
}
return true;
}
public void take() {
// 得到要带走的动物
String anim = here.get(0);
// 从剩下的集合中删除
here.remove(here.get(0));
if (anim.equals("cat")) {
// 添加到以带过去的集合里面
there.add(anim);
// 继续带下一个动物
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 + "带走");
// 判断是否安全,之后继续带下一个动物
if (isSafty(there)) {
take();
} else {
String animal = there.get(0);
there.remove(animal);
here.add(animal);
System.out.println("然后把" + animal + "带回");
// 继续带下一个动物
take();
}
} else if (anim.equals("fish")) {
System.out.print("之后把" + anim + "带走");
take();
}
}
}
方法二:
import java.util.ArrayList;
import java.util.Random;
/*
* 需求:
* 一位老农带着猫、狗、鱼过河,河边有一条船,每次老农只能带一只动物过河。
* 当老农不和猫狗鱼在一起时,狗会咬猫,猫会吃鱼,当老农和猫狗鱼在一起时,则不会发生这种问题。
* 编程解决猫狗鱼过河问题。
* 分析:
* 定义猫,狗,鱼元素.定义两岸集合.定义方法判断不和谐状况.
* 步骤:
* 1.将猫狗鱼抽象为三个String型变量.将两岸抽象为两个集合.
* 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("狗");
// 农夫将要携带到船上动物.(前一字符表示农夫当前携带动物,后一字符表示上次农夫携带的动物,为了让农夫不出现重复拿同一个动物的情况)
System.out.println("农夫,猫,鱼,狗都在此岸,开始过河.\n");
String[] boat ={"-","-"};
while (arr1.size() 0) {
move(arr1, arr2, boat);
}
System.out.println("\n农夫,猫,鱼,狗都到达彼岸.");
}
public static void move(ArrayListString arr1, ArrayListString arr2,String[] boat) {
//农夫船上是否有动物,有则不需随机选择携带.
if (boat[0].equals("-")) {
int one=0;
do{
// 农夫从此岸随机带上一个动物.
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)) {
// 此岸和谐,农夫则将动物送去彼岸.
arr2.add(boat[0]);
System.out.println("---农夫带" + boat[0] + "去彼岸 ");
//首先判断是否将三个动物都放彼岸,是则无需判断是否和谐.
if(arr2.size()==3){
return;
}
// 判断彼岸是否和谐.
if (ifNice(arr2)) {
// 彼岸和谐,农夫则完成此次运送.
boat[1]=boat[0];
boat[0] ="-";
System.out.println(" 农夫单独回此岸---");
} else {
// 彼岸不和谐,农夫则将岸上动物与携带动物交换.送回此岸.
boat[0]=arr2.get(0);
System.out.println(" 农夫带" +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逻辑运算问题
for (int n1 = 1; n1 20; n1++) {
for (int n2 = 1; n2 20; n2++) {
for (int n3 = 1; n3 20; n3++) {
for (int n4 = 1; n4 20; n4++) {
if((n1 + n2 + n3)!=22)
continue;
if((n2 + n3 + n4)!=24)
continue;
if((n3 + n4 + n1)!=27)
continue;
if((n4 + n1 + n2)!=20)
continue;
System.out.println(n1 + " " + n2 + " " + n3 + " " + n4);
}
}
}
}
使用java语言理解程序逻辑?
正确答案:AC。
【解析】这个题目考察了方法的返回值类型及return关键字的使用。一般情况下,方法由返回值时才使用return语句。且return语句中表达式的类型一定与方法的返回值类型保持一致。根据这个原则解析如下:
A:方法的返回值是String类型,return语句中表达式也是String,二者相符,故正确。
B:方法的返回值是void,即方法没有返回值(或返回值为空),可以不需要return语句,而且return语句中表达式是String,二者不符,故错误。
C:方法的返回值是String类型,return语句中表达式也是String,二者相符,故正确。
D:方法的返回值是int类型,而return语句中表达式是String,二者不符,故错误。
综上所述,争取答案为AC。
JAVA逻辑题 1-1000输出个位和十位和千位不含7的数
int i,j,k,l;
for(l=1;l10;l++) System.out.println(l);
for(k=1;k7;k++)
for(l=0;l10;l++) System.out.println(k+""+l);
for(k=8;k10;k++)
for(l=0;l10;l++) System.out.println(k+""+l);
for(j=1;j10;j++){
for(k=0;k7;k++)
for(l=0;l10;l++) System.out.println(j+""+k+""+l);
for(k=8;k10;k++)
for(l=0;l10;l++) System.out.println(j+""+k+""+l);
}
System.out.println(1000);多一点代码还是可以的。