| Check whether the number is pa... | |||||||
|
30 Day Risk-Free Guarantee:
100% money back if you're unsatisfied. Book (308 Pages):
![]() Video (One Hour):
![]() Resume Review (24 - 48hr)
All Products / Services
|
|||||||
Check whether the number is palindrome or not without using array?
Convert the 6 decimal system into 10 decimal system?
how can you reverse a number? You have to change it to a string?
// count the number of digits.
count=0;
while(n) {++count;n/=10}// now compare digits
for(i=1;i<count/2;++i){
if(n/pow(10,count-i) != n % pow(10,i)
return false;
}
i=1;i<=count/2;i++
sloppy code.
u really need to practice more coding
void palindrome(int n){
int reverse_n=0, int tempn=n;
while(n){
reverse_n*=10;
reverse_n+=n%10;
n/=10;
}
return tempn==reverse_n;
}
dude you are just reversing it. NOT checking it.
geniusxsy's code is right...
but just change the return type...(raj might be confused)
void palindrome(int n){
int reverse_n=0, int tempn=n;
while(n){
reverse_n*=10;
reverse_n+=n%10;
n/=10;
}
return tempn==reverse_n;
}
This seems precise answer.
Here is the logic,
bool palindrome(int n){
int reverseNumber = 0, constantFactor = 10, remainder = 0;
int originalNumber = n;
while(n){
remainder = n%constantFactor;
n /= 10;
reverseNumber = remainder + reverseNumber * constantFactor;
}
return originalNumber == reverseNumber;
}
private static bool isP(int n)
{
int m = n;
int p = 0;
while (n > 0)
{
p = p * 10 + n % 10;
n /= 10;
}
return (m == p);
}
int palindrome(int n)
{
int rev = 0;
int tmp = n;
int k;
while(tmp!=0)
{
k = tmp%10;
tmp = tmp/10;
rev = rev*10;
rev = (rev+k);
}
printf("rev--%d \n",rev);
while(rev!=0)
{
if(rev%10 !=n%10)
return 0;
rev = rev/10;
n = n/10;
}
return 1;
}
Algo:
1: convert the number into staring using itoa, ltoa or whatever suitable in-built function
2: take size of the string, n
3: then compare the i and n-i positions, increment i everytime till you reach the half
please correct me if i am wrong
wrong, no conversion to string allowed. cannot use an array.
bool palindrome(int num){
int reversenum, remainder;
int tmp=num;
if(tmp>0){
while(tmp)
{
remainder=tmp%10;
tmp=tmp/10;
reversenum=reversenum*10+remainder;
}
return (!(num^reversenum));
}
}
bool palindrome(int n)
{
int m = 1;
int x = n/10;
while(x)
{
m *=10;
x/=10;
}
bool Ispalindrome = true;
while(n)
{
if((n/m) != (n%10))
{
Ispalindrome = false;
break;
}
n %= m;
n /=10;
m /=100;
}
return Ispalindrome;
}
reverse, compare.
what is 6 decimal system??? base_6 representation?