-1

下面的程序是在 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;
}

上面的代码适用于我需要的所有东西,除了最大的回文。

我的算法就像

  1. 取每种组合的乘积
  2. 如果乘法 res > 10,则使用函数检查结果是否为回文并打印回文。
  3. 通过与前一个数字比较来检查最大的数字。

所以我将之前的值存储在 res1 变量中,我正在比较 res 和 res1 变量。

根据我的逻辑,它最后检查 (88<99) 是否属实。现在的问题是如何打印存储在 res 变量中的最后一个值?

4

2 回答 2

1

由于您有res1存储回文值的全局变量,请考虑添加一个cout以输出此值:cout<<"Last value: "<<res1<<endl;在您之前return 0

当然,我建议您的palindrome函数改为接受并返回res1,以避免使用全局变量和其他一些语义类型的东西......但这些是不同的问题,对您来说可能并不重要。

于 2011-09-21T11:44:55.603 回答
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();
}
于 2012-11-05T06:06:12.050 回答