تحديات برمجيةالتحدي الأول - حل التمرين الثالث بلغة جافا
المطلوب
أكتب برنامج يطلب من المستخدم إدخال رقم. بعدها يعرض له إن كان هذا الرقم عبارة عن Palindrome أم لا.
الـ Palindrome عبارة عن رقم أعداده معكوسة بشكل متساوي من اليمين إلى اليسار و من اليسار إلى اليمين.
أمثلة: الأرقام التالية جميعها تعتبر أرقام Palindrome: 1001
- 123321
- 4554
- 45654
.
الحل بلغة جافا
الطريقة الأولى لحل التمرين.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number; int originalNumber; int reversedNumber = 0; int remainder; System.out.print("Enter a number: "); number = input.nextInt(); originalNumber = number; while (number != 0) { remainder = number % 10; reversedNumber = reversedNumber * 10 + remainder; number /= 10; } if (originalNumber == reversedNumber) { System.out.println(originalNumber + " is a palindrome"); } else { System.out.println(originalNumber + " is not a palindrome"); } } }
الطريقة الثانية لحل التمرين و الحصول على نفس النتيجة.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); boolean isPalindrome = true; int n; System.out.print("Enter a number: "); n = input.nextInt(); String nString = n + ""; for (int i = 0; i < nString.length() / 2; i++) { if( nString.charAt(i) != nString.charAt(nString.length() - i - 1)) { isPalindrome = false; break; } } if(isPalindrome) { System.out.println(n + " is a palindrome"); } else { System.out.println(n + " is not a palindrome"); } } }
سنحصل على النتيجة التالية إذا قام المستخدم بإدخال الرقم 1234 عند التشغيل.
Enter a number: 1234 1234 is not a palindrome
سنحصل على النتيجة التالية إذا قام المستخدم بإدخال الرقم 1234321 عند التشغيل.
Enter a number: 1234321 1234321 is a palindrome