0

I made this program which had to calculate the Largest Palindrome which being the product of two 3-Digit Numbers.
My Program :

#include <iostream.h>
#include <conio.h>
int reverse(int num)
{
int rev=0,mod;
 while(num)
    {
      mod=num%10;
      num=num/10;
      rev=(rev*10)+mod;
    }
 return(rev);
}

void main()
{
textbackground(WHITE);
textcolor(BLACK);
clrscr();
long a,b,c,r=0,d;

for (a=999 ; a>=100 ; a--)
    {
      for (b=999 ; b>=100 ; b--)
        {
          c=a*b;
          d=c;
          r=reverse(c);
           if(r==d)
           break;
           cout <<"A : " <<a <<"\tB : " <<b <<"\tProduct : " <<c <<endl;
        }
      if(r==d)
      break;
    }
cout <<"Largest Palindrome is : " <<d;
getch();
}

It runs for 1-2 minutes and then suddenly stops without displayin any output.
A little help on whats going wrong?

4
Contributors
8
Replies
12
Views
4 Years
Discussion Span
Last Post by WaltP
Featured Replies
  • 1

    Your output is not inside the if clause. d variable is competely unnecessary. I do not understand why 33 and 34, which interrupt search prematurely (995 and 583 is not correct answer), you are not doing the maximum finding part. Read More

  • 1
    WaltP 2,905   4 Years Ago

    > Ok here it is...made the necesseray adjustments. Still Not Correct :| you really need to **explain** what happens when asking for help. Based on this statement we can't tell if 1) you now have compile errors 2) you now have link errors 3) your program crashes 4) it surprisingly … Read More

0

Output values to see what is happening while the program runs. This can also pinpoint where the error is and what variables have bad values.

0

Output stops at -
A : 146 B : 479 Product : 69934
Doesn't even check the palindrome condition, I guess :|

Edited by Sanjam.kumar: incomplete

0

Its running perfectly for me.

Output :

A : 995 B : 583 Product 580085 Palindrome

And you need to change your program writing, using iostream.h void main() textbackground(WHITE); etc are not standard.

1

Your output is not inside the if clause. d variable is competely unnecessary. I do not understand why 33 and 34, which interrupt search prematurely (995 and 583 is not correct answer), you are not doing the maximum finding part.

Edited by pyTony

0

So many errors with my program --
Thanks alot np and pytony.
I guess the main error is with the memory evaluation...like np said, I use quite extra commands. :P
Still the answer is not correct...will try and correct the program and post it as soon as possible ^
^

0

Ok here it is...made the necesseray adjustments. Still Not Correct :|

#include <iostream.h>
#include <conio.h>
int reverse(int num)
{
int rev=0,mod;
 while(num)
    {
      mod=num%10;
      num=num/10;
      rev=(rev*10)+mod;
    }
 return(rev);
}

void main()
{
clrscr();
long a,b,c,r=0,d,x=0;

for (a=999 ; a>=100 ; a--)
    {
      for (b=999 ; b>=100 ; b--)
    {
      c=a*b;
      d=c;
      r=reverse(c);
       if(r==d)
        {
         if(x<d)
         x=d;
        }

    }
    }
cout <<"Largest Palindrome is : " <<x;
getch();
}
1

Ok here it is...made the necesseray adjustments. Still Not Correct :|

you really need to explain what happens when asking for help. Based on this statement we can't tell if
1) you now have compile errors
2) you now have link errors
3) your program crashes
4) it surprisingly prints the words to "Jana Gana Mana"

Every post needs to be explicit. Detail what the problem is, and where you think the error is.

This article has been dead for over six months. Start a new discussion instead.
Please be thoughtful and detailed and be sure to adhere to our posting rules.