Java實現條件性參加會議問題 兩種方法

2021-08-07 04:49:47 字數 1700 閱讀 3647

有人邀請a,b,c,d,e,f 6個人參加一項會議,這6個人有些奇怪,因為他們有很多要求,已知:

1)a,b兩人至少有1人參加會議;

2)a,e,f 3人中有2人參加會議;

3)b和c兩人一致決定,要麼兩人都去,要麼兩人都不去;

4)a,d兩人中只1人參加會議;

5)c,d兩人中也只要1人參加會議;

6)如果d不去,那麼e也決定不去。

那麼最後究竟有哪幾個人參加了會議呢?

方法一:暴力列舉

package string;

public class meeting_1 }}

}}}}

} private static boolean tem6(int a1, int a2, int a3, int a4, int a5, int a6)

return false;

} return false;

} private static boolean tem5(int a1, int a2, int a3, int a4, int a5, int a6)

return false;

} private static boolean tem4(int a1, int a2, int a3, int a4, int a5, int a6)

return false;

} private static boolean tem3(int a1, int a2, int a3, int a4, int a5, int a6)

return false;

} private static boolean tem2(int a1, int a2, int a3, int a4, int a5, int a6)

return false;

} private static boolean tem1(int a1, int a2, int a3, int a4, int a5, int a6)

return false;

}}

測試結果:

a1 1

a2 1

a3 1

a4 0

a5 0

a6 1

方法二:衛條件

package string;

public class meting_2 }}

}}

}} }

private static boolean teml(int a1, int a2, int a3, int a4, int a5, int a6)

//條件2

if (a1 + a5 + a6 != 2)

// 條件3

if (a2 + a3 == 1)

//條件4

if (a1 + a4 != 1)

//條件5

if (a3 + a4 != 1)

//條件6

if (a4 == 0)

} return true;

}}

測試結果:

a1 1

a2 1

a3 1

a4 0

a5 0

a6 1

兩種方法的對比,很明顯衛條件非常好用!!!效率也高...

java 條件佇列

條件佇列讓一組執行緒 稱作等待集 以某種方式等待相關條件變成真,它也由此得名。不同於傳統的佇列,它們的元素是資料項 條件佇列的元素是等待相關條件的執行緒。threadsafe public classboundedbufferextendsbaseboundedbuffer public synch...

java 形參 實參

實參 直接值傳遞 string 八大基礎資料型別 形參是定義方法的時候,該方法所攜帶的引數,不如說現在有乙個方法 public void printinfo string info 此處info就是乙個形參,它是string型別的。實參是你在呼叫方法的時候,給這個方法傳遞的引數值,比如說有這麼乙個語...

java形參實參

摘自 一 基本資料型別 傳值,方法不會改變實參的值。如int,string 二 物件型別引數 傳引用,方法體內改變形參引用,不會改變實參的引用 但有可能改變實參物件的屬性值 string陣列 1 方法體內改變形參引用,但不會改變實參引用 實參值不變。2 方法體內,通過引用改變了實際引數物件的內容,注...