以下程序是查找2位数字产品的回文(路径最多10 * 11)。
#include<iostream>
using namespace std;
int res1=0
void palindrome(int mul)
{
int k,res=0,count=0;
int p=mul;
while(mul!=0)
{
k=mul%10;
res=(res*10)+k;
mul=mul/10;
}
if(res==p)
cout<<res<<"is a palindrome:\n"
{
if(res1<res)
res1=res;
}
}
int main()
{
int mul,j;
for(int i=1;i<11;i++)
{
for(j=1;j<12;j++)
{
mul=i*j;
if(mul>10)
palindrome(mul);
}
cout<<"\n";
}
return 0;
}
除了最大的回文外,上述代码适用于我需要的所有内容。
我的算法就像
所以我将之前的值存储在res1变量中,我正在比较res和res1变量。
根据我的逻辑,它最后检查(88&lt; 99)这是真的。现在问题是如何打印存储在res变量中的最后一个值?
答案 0 :(得分:1)
由于您拥有存储回文值的全局变量res1
,请考虑在cout
之前添加cout<<"Last value: "<<res1<<endl;
以输出此值:return 0
。
当然,我建议您的palindrome
函数接受并返回res1
以避免使用全局变量和其他一些语义类型的东西......但这些是不同的问题,可能不会对你很重要。
答案 1 :(得分:0)
我编写了一个代码来检查用户输入的数字是否为回文数据。代码也返回给定数字的反向。 代码如下:
#include<iostream.h>
#include<conio.h>
class palindrome
{
int a;
int f;
int b;
int l;
int c;
int count;
public:
void getdata();
void counting();
void reverse();
void display();
};
void palindrome::getdata()
{
cout<<"Enter any number having atleast 2 digits";
cin>>a;
b=a;
c=a;
}
void palindrome::counting()
{
int count=1;
f=1;
do
{
a=a/10;
count++;
}while(a/10!=0);
for(int k=1;k<count;k++)
{
f=f*10;
}
}
void palindrome::reverse()
{
l=0;
for(int i=1;i<=count;i++)
{
int k=b%10;
k=k*f;
f=f/10;
l=l+k;
b=b/10;
}
cout<<"\nThe reverse of the number is"<<l;
}
void palindrome::display()
{
if(l==c)
{
cout<<"\nThe number is palindrome";
}
else
cout<<"\nThe number is not palindrome";
}
void main()
{
palindrome a;
clrscr();
a.getdata();
a.counting();
a.reverse();
a.display();
getch();
}