69,373
社区成员
发帖
与我相关
我的任务
分享
//题1:
int a = 10; //a=10
int b = a++; //b=10;a=11
int c = ++a; //c=11;a=11
int d = 10 * a++; //d=110;a=12
b = ? c = ? d = ? //b=10;c=11;d=110
public class DoctorsNurses {
/** Creates a new instance of test1 */
//男医生mendoctors 男护士mennurses 女医生womendoctor 女护士womennurses
/*
已知某医疗机构总人数为16,不管是否包括A,下列情况总是成立
a:护士人数多于医生人数 mennurses + womennurses > mendoctors + womendoctors
b:男医生人数多于男护士 mendoctors > mennurses
c:女医生人数小于女护士 womendoctors < womennurses
d:女医生至少有一人 womendoctors >= 1
问A的性别和职业
womennurses >= 2; womendoctors >= 1; mennurses >= 0; mendoctors >= 1;
*/
public static void main(String []args){
System.out.println("begin: ");
/*40楼在循环体内的初值判断上也有一点小错,所以导致少输出一些数据。*/
for(int mendoctors=1; mendoctors <15; mendoctors++){
for(int mennurses=0;mennurses <15;mennurses++)
for(int womendoctors=1;womendoctors <15;womendoctors++)
for(int womennurses=2;womennurses <15;womennurses++){
if(check( mendoctors,mennurses,womendoctors,womennurses)){
for(char i=97;i<=100;i++)
{
switch(i)
{
case 'a': if(check2(mendoctors+1,mennurses,womendoctors,womennurses)) System.out.println("mendoctors: mendoctors= "+mendoctors+" mennurses= "+mennurses+" womendoctors= "+womendoctors+" womennurses= "+womennurses);break;
case 'b': if(check2(mendoctors,mennurses+1,womendoctors,womennurses)) System.out.println("mennurses: mendoctors= "+mendoctors+" mennurses= "+mennurses+" womendoctors= "+womendoctors+" womennurses= "+womennurses);break;
case 'c': if(check2(mendoctors,mennurses,womendoctors+1,womennurses)) System.out.println("womendoctors: mendoctors= "+mendoctors+" mennurses= "+mennurses+" womendoctors= "+womendoctors+" womennurses= "+womennurses);break;
case 'd': if(check2(mendoctors,mennurses,womendoctors,womennurses+1)) System.out.println("womennurses: mendoctors= "+mendoctors+" mennurses= "+mennurses+" womendoctors= "+womendoctors+" womennurses= "+womennurses);break;
}
}
}
}
}
}
public static boolean check(int a,int b,int c,int d){
if( (a+b+c+d==15) && (a>b) && (b+d<a+c) && (c <d)) //40楼错误:if( (a+b+c+d==15) && (a>b) && (b+d>a+c) && (c <d)) 呵呵,可能笔误吧。
return true;
else
return false;
}
public static boolean check2(int a,int b,int c,int d){
if( (a+b+c+d==16) && (a>b) && (b+d<a+c) && (c <d)) //40楼错误:if( (a+b+c+d==16) && (a>b) && (b+d>a+c) && (c <d))
return true;
else
return false;
}
}
public class test1 {
/** Creates a new instance of test1 */
public test1() {
}
public static void main(String []args){
System.out.println("begin: ");
for(int a=1;a <15;a++){
for(int b=1;b <15;b++)
for(int c=1;c <15;c++)
for(int d=1;d <15;d++){
if(check(a,b,c,d)){
if(check2(a+1,b,c,d))
System.out.println("1: a= "+a+" b= "+b+" c= "+c+" d= "+d);
if(check2(a,b+1,c,d))
System.out.println("2:a= "+a+" b= "+b+" c= "+c+" d= "+d);
if(check2(a,b,c+1,d))
System.out.println("3:a= "+a+" b= "+b+" c= "+c+" d= "+d);
if(check2(a,b,c,d+1))
System.out.println("4:a= "+a+" b= "+b+" c= "+c+" d= "+d);
}
}
}
}
public static boolean check(int a,int b,int c,int d){
if( (a+b+c+d==15) && (a>b) && (b+d>a+c) && (c <d))
return true;
else
return false;
}
public static boolean check2(int a,int b,int c,int d){
if( (a+b+c+d==16) && (a>b) && (b+d>a+c) && (c <d))
return true;
else
return false;
}
}