Find numbers which are palindrome in both their decimal and octal Representations

Objective: Given a range of integers, find all the numbers which are palindrome when they are represented in Decimal Value( base 10) and in Octal value(base 8).

Example :

Number : 373 (Decimal) and digits are palindrome.

Convert it into Octal which is 565 and that's also palindrome.

Approach:

Solution is quite simple. Traverse through all the numbers in the given range and check if it palindrome, if yes, convert it into Octal and check for palindrome again.

Code:

public class DecimalOctalPalindrome {
public String DecimalToOctal(int N) {
String Oct = "";
while (N > 0) {
int x = N % 8;
N = N / 8;
Oct += x;
}
return Oct;
}
public boolean isPalindrome(String S) {
int i = 0;
int j = S.length() 1;
while (i < j) {
if (S.charAt(i) != S.charAt(j)) {
return false;
}
i++;
j;
}
return true;
}
public void findBothPalindrome(int start, int end) {
for (int i = start; i <= end; i++) {
String decimal = String.valueOf(i);
if (isPalindrome(decimal)) {
String Oct = DecimalToOctal(i);
if (isPalindrome(Oct)) {
System.out.print(Oct + " ");
}
}
}
}
public static void main(String[] args) {
DecimalOctalPalindrome d = new DecimalOctalPalindrome();
d.findBothPalindrome(1, 2000);
}
}


Output:

1  2  3  4  5  6  7  11  171  444  515  565  636  1111  

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.