zoj1078 Palindrom Numbers
2006-07-10 19:38
447 查看
//zoj1078 Palindrom Numbers
//Accepted 1078 C++ 00:00.00 392K
#include <stdio.h>
#include <string.h>
int n;
//把十进制的num转换成k进制,返回s的长度
int converse(int s[],int num,int k)
{
int len = 0;
while (num){
s[len++] = num%k;
num /= k;
}
return len;
}
bool palindrom(int s[],int len)
{
for (int i=0; i<len/2; ++i)
if (s[i] != s[len-1-i]) return false;
return true;
}
void solve()
{
int k,s[20],a[17]={0};
bool flag = false;
for (k=2; k<=16; ++k){
int len = converse(s,n,k);
if (palindrom(s,len)) {
a[k] = 1;
flag = true;
}
}
if (flag) {
printf ("Number %d is palindrom in basis",n);
for (k=2; k<=16; ++k)
if (a[k]) printf (" %d",k);
}
else printf ("Number %d is not a palindrom",n);
printf ("/n");
}
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("1078.txt","r",stdin);
#endif
while (scanf("%d",&n)!=EOF && n)
solve();
#ifdef ONLINE_JUDGE
#else
fclose(stdin);
#endif
return 0;
}
//Accepted 1078 C++ 00:00.00 392K
#include <stdio.h>
#include <string.h>
int n;
//把十进制的num转换成k进制,返回s的长度
int converse(int s[],int num,int k)
{
int len = 0;
while (num){
s[len++] = num%k;
num /= k;
}
return len;
}
bool palindrom(int s[],int len)
{
for (int i=0; i<len/2; ++i)
if (s[i] != s[len-1-i]) return false;
return true;
}
void solve()
{
int k,s[20],a[17]={0};
bool flag = false;
for (k=2; k<=16; ++k){
int len = converse(s,n,k);
if (palindrom(s,len)) {
a[k] = 1;
flag = true;
}
}
if (flag) {
printf ("Number %d is palindrom in basis",n);
for (k=2; k<=16; ++k)
if (a[k]) printf (" %d",k);
}
else printf ("Number %d is not a palindrom",n);
printf ("/n");
}
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("1078.txt","r",stdin);
#endif
while (scanf("%d",&n)!=EOF && n)
solve();
#ifdef ONLINE_JUDGE
#else
fclose(stdin);
#endif
return 0;
}
相关文章推荐
- ZOJ-1078-Palindrom Numbers
- ZOJ&nbsp;1078&nbsp;Palindrom&nbsp;Numbers
- zoj 1078 Palindrom Numbers
- ZOJ 1078 Palindrom Numbers
- UVALive2389 ZOJ1078 Palindrom Numbers
- ZOJ1078-Palindrom Numbers
- ZJU1078-Palindrom Numbers
- 1078 Palindrom Numbers
- zoj 2001 Adding Reversed Numbers
- ZOJ 1095 Humble Numbers (构造)
- zoj 1095 Humble Numbers
- ZOJ 3505 Yet Another Set of Numbers
- ZOJ 1078 题目大意是 :判断 一些数在从二到十六的进制是否是回文数
- ZOJ 1078
- [数论] HOJ 1528/ZOJ 1823 Factoring Large Numbers
- ZOJ-1078
- ZOJ 2001 Adding Reversed Numbers
- ZOJ 2405 Specialized Four-Digit Numbers
- ZOJ Problem Set - 3487||Ordinal Numbers
- ZOJ2405 Specialized Four-Digit Numbers