ZOJ1078

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=78

太水了

#include<iostream>
#include<cstdio>

using namespace std;

bool is_palindrom(int x,int k)
{
    int b[35] = {0};

    while (x)
    {
        b[0]++;
        b[b[0]] = x % k;
        x /= k;
    }
    for (int i=1; i<=b[0]/2; i++)
        if (b[i] != b[b[0]-i+1]) return false;
    return true;
}

int main()
{
    int x;
    int a[20];

    while (cin>>x && x!=0)
    {
        a[0] = 0;
        for (int i=2; i<=16; i++)
            if (is_palindrom(x,i))
            {
                a[0]++;
                a[a[0]] = i;
            }
        if (a[0])
        {
            printf("Number %d is palindrom in basis",x);
            for (int i=1; i<=a[0]; i++)
                cout<<' '<<a[i];
            cout<<endl;
        }
        else
            printf("Number %d is not a palindrom\n",x);
    }

    return 0;
}


你可能感兴趣的:(ZOJ1078)