تصف هذه المقالة التنفيذ البسيط لمشكلة المزارعين الذين يعبرون النهر في جافا. شاركه للرجوع إليه ، على النحو التالي:
1. وصف المشكلة
يريد الرجل العجوز قطع الأسماك والكلاب والقطط عبر النهر إلى الجانب الآخر. هناك قارب يمكن أن يجلس فقط شخص واحد. يمكن للرجل العجوز إحضار حيوان واحد فقط لعبور النهر في كل مرة. عندما يكون الرجل العجوز بعيدًا ، سوف يعض الكلب القط وسيأكل القط السمك. كيف تعبر النهر بالتسلسل؟
2. تنفيذ الكود
Package Demo ؛ Import java.util.arraylist ؛ import java.util.list ؛ public classRiver {list <string> listTheis = new ArrayList <string> () ؛ قائمة <Tring> listThat = new ArrayList <String> () ؛ /*boolean thisflag = true ؛ Boolean thatflag = false ؛*/ public crossriver () {listthis.add ("dog") ؛ LITTTHIS.Add ("Fish") ؛ ListTheis.Add ("Cat") ؛ // listthis.add ("People") ؛ } issafe boolean public (suppressWarnings ("RawTypes") قائمة) {if (list.contains ("fish") && list.contains ("cat") || list.contains ("cat") && ript.contains ("dog")) {return false ؛ } آخر {return true ؛ }} public void thisTothat () {String str = listtheis.get (0) ؛ ListTheis.Remove (Str) ؛ if (this.issafe (listthis)) {system.out.println ("The Farmer يأخذ" + Str + "من هذا الشاطئ إلى الشاطئ الآخر") ؛ System.out.println ("This Shore" + ListTheis + "/B" + "Out Other Shore" + ListThat) ؛ system.out.println () ؛ LITTTHAT.ADD (STR) ؛ thattothis () ؛ } else {listthis.add (str) ؛ thistothat () ؛ }} public void thattothis () {if (listtheis.isempty ()) {system.out.println ("this shore" + listthis + "/b" + "out Other Shore" + ListThat) ؛ يعود؛ } if (issafe (listThat)) {system.out.println ("ينتقل المزارع من الشاطئ الآخر إلى هذا الشاطئ") ؛ System.out.println ("This Shore" + ListTheis + "/B" + "Outside Shore" + ListThat) ؛ system.out.println () ؛ thistothat () ؛ } آخر {String str = listThat.get (0) ؛ ListThat.Remove (0) ؛ if (issafe (listThat)) {system.out.println ("يأخذ المزارع" + str + "من الشاطئ الآخر إلى هذا الشاطئ") ؛ System.out.println ("This Shore" + ListTheis + "/B" + "Outside Shore" + ListThat) ؛ system.out.println () ؛ LITTTHIS.ADD (STR) ؛ thistothat () ؛ } آخر {listThat.add (str) ؛ thattothis () ؛ }} public static void main (string [] args) {system.out.println ("نتائج اختبار wulin.com:") ؛ system.out.println () ؛ New CrossRiver (). thisTothat () ؛ }}نتائج التشغيل:
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.