تصف هذه المقالة طريقة حساب عدد الثقوب السوداء في جافا. شاركه للرجوع إليه ، على النحو التالي:
أي رقم مكون من 5 أرقام ، مثل: 34256 ، تعطيل وإعادة ترتيب أرقام الأرقام الخاصة به للحصول على الحد الأقصى للرقم: 65432 والرقم الأدنى 23456. ابحث عن الفرق بين هذين الرقمين واحصل على: 41976. كرر العملية أعلاه مع هذا الرقم مرة أخرى (إذا كان هناك أقل من 5 أرقام ، أضف 0 في المقام الأول). من خلال القيام بذلك ، سوف تقع الأرقام في دورة معينة (تسمى ثقب أسود رقمي).
على سبيل المثال ، سوف يسقط الرقم الآن في هذه الدورة: [82962،75933 ، 63954 ، 61974].
يرجى كتابة برنامج للعثور على جميع دوائر الحلقة الممكنة مع 5 أرقام وإخراج ، كل دائرة حلقة تأخذ خط واحد. إذا كانت جميع الأرقام المكونة من 5 أرقام هي نفسها ، فإن دائرة الحلقة هي [0] ، والتي يمكن تجاهلها. يتم تقليد تنسيق الإخراج لدائرة الحلقة على النحو التالي:
[82962،75933 ، 63954 ، 61974]
يمكن تجاهل ترتيب الأرقام.
test.java:
اختبار الفئة العامة {static int r = 0 ؛ static int b [] = new int [16] ؛ static int c [] = new int [5] ؛ static int sort (int n ، boolean boo) // function function {int i ، j ، sum = 0 ، temp ؛ int a [] = new int [5] ؛ لـ (i = 0 ؛ i <5 ؛ i ++) {a [i] = n ٪ 10 ؛ n/= 10 ؛ } لـ (j = 0 ؛ j <4 ؛ j ++) لـ (i = 0 ؛ i <4-j ؛ i ++) {if (a [i] <a [i+1] && boo) {temp = a [i] ؛ a [i] = a [i+1] ؛ a [i+1] = temp ؛ } if (a [i]> a [i+1] &&! boo) {temp = a [i] ؛ a [i] = a [i+1] ؛ a [i+1] = temp ؛ }} لـ (i = 0 ؛ i <5 ؛ i ++) sum+= a [i]*(int) math.pow (10،4-i) ؛ Return Sum ؛} ثابت Boole (int d []) // judge function {int n ، t ، q ، i ، j ؛ العلم المنطقي = صحيح ؛ لـ (i = 0 ؛ i <16 ؛ i ++) لـ (j = i+1 ؛ j <16 ؛ j ++) if (b [i] == b [j]) d [1] = j ؛ ن = جي ؛ لـ (q = 0 ؛ q <= r ؛ q ++) لـ (t = i ؛ t <= j ؛ t ++) if (c [q] == b [t]) flag = false ؛ من القيمة المخزنة في الصفيف أحادي البعد الأصلي ، ثم خذ واحدة من دائرة الحلقة لحفظ علامة الإرجاع ؛ } الإرجاع علامة ؛} الفراغ الثابت العام (سلسلة [] args) {int n ، m ، w ، t ، p ؛ int r = 1 ؛ العلم المنطقي = خطأ ؛ int d [] = new int [2] ؛ System.out.println ("Wulin.com نتيجة اختبار:") ؛ لـ (m = 10000 ؛ m <100000 ؛ m ++) {n = m ؛ لـ (p = 0 ؛ p <16 ؛ p ++) {w = sort (n ، true) -sort (n ، false) ؛ ب [p] = w ؛ ن = ث ؛ } if (boo (d)) // إخراج دوائر حلقة مختلفة {system.out.printf ("[[") ؛ لـ (t = d [0] ؛ t <d [1] -1 ؛ t ++) system.out.printf ("٪ d ،" ، b [t]) ؛ System.out.printf ("٪ d" ، b [t]) ؛ system.out.printf ("]/n") ؛ }}}}نتائج التشغيل:
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "ملخص مهارات التشغيل الرياضية Java" ، "البرامج التعليمية لهيكل بيانات Java والخوارزمية" ، "ملخص لمهارات تشغيل Java" ، "ملخص لمهارات تشغيل Java" و "ملخص مهارات التشغيل" من Java Cathe "مهارات التشغيل Java"
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.