ZOJ1078 Palindrom Numbers

简介:
#include <iostream>
#include <stack>
#include <vector>
using namespace std;

bool IsPalindrom(stack<int>& s,const vector<int>& v)
{//判断是否是"回文"
    int index = 0;
    while(!s.empty())
    {
        if(s.top()!=v[index++])
        {
            return false;
        }
        s.pop();
    }
    return true;
}
bool DividN(int num,int n)
{//n进制除法
    stack<int> s1;
    vector<int> v1;
    int tmp;
    while (num!=0)
    {
        tmp = num%n;
        s1.push(tmp);
        v1.push_back(tmp);
        num = num/n;
    }
    return IsPalindrom(s1,v1);
}
int main(void)
{
    int n,i;
    
    while(cin>>n&&n!=0)
    {
        bool isFirst = true;//第一个是回文的进制
        for (i=2;i<=16;++i)
        {
            if (DividN(n,i))
            {
                if (isFirst==true)
                {
                    cout<<"Number "<<n<<" is palindrom in basis "<<i;
                    isFirst = false;
                }
                else
                {
                    cout<<" "<<i;
                }
                
            }
        }
        if (isFirst==true)
        {//不是回文
            cout<<"Number "<<n<<" is not a palindrom";
        }
        cout<<endl;
    }
    return 0;
}
复制代码


本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2008/10/30/1323233.html,如需转载请自行联系原作者
目录
相关文章
|
人工智能
ZOJ-3869,Ace of Aces(简单题)
ZOJ-3869,Ace of Aces(简单题)
|
人工智能 Go
ZOJ 3635 Cinema in Akiba
题意:一群人到电影院看电影,该电影的门票计算比较特殊,如:甲第一个拿到1号门票则位置为1,乙第二个拿票,票号也是1,则位置为2,因为1号位置已经被甲占了,乙的位置为剩下位置中的1号位置。
122 0
|
人工智能 BI 应用服务中间件
ZOJ1067 Color Me Less
复制代码#include <iostream> #include <cmath> #include <limits> using namespace std; const int MAXSIZE = 100; int pos[100];//记录对应的最小值所在位置 struct RGB {//颜.
1460 0
|
BI 人工智能