ZOJ1078-Palindrom Numbers
2016-01-23 12:11
351 查看
#include <stdio.h> #include <string.h> int digit[120000]; int con[15]; int len; void trans(int num, int base) { int i = 0; for ( ; ; ) { digit[i] = num % base; if (!(num /= base)) break; i++; } len = i; } int main() { int num; int i, j, k, l; while (scanf("%d", &num) == 1 && num) { l = 0; memset(con, 0, sizeof(int) * 15); for (i = 2; i <= 16; i++) { memset(digit, 0, sizeof(int) * 120000); trans(num, i); for (j = 0, k = len; j <= len && k >= 0; j++, k--) { if (digit[j] != digit[k]) { break; } } if (j == len+1 && k == -1) { con[l++] = i; } } if (l != 0) { printf("Number %d is palindrom in basis ", num); for (i = 0; i < l; i++) { printf("%d", con[i]); if (i != l - 1) { printf(" "); } } printf("\n"); } else printf("Number %d is not a palindrom\n", num); } return 0; }题目要求输入一个十进制数,寻找该数在不同进制中的回文数。先将十进制数转换成不同的进制数(倒序)存入数组,比较数组中的元素是否对称,如果对称则将该进制存入一个临时数组,最后观察数组是否为空并输出该数组即可。
相关文章推荐
- 试读—Windows PowerShell实战指南(第2版)
- C++中的右值引用"&&"
- Android自定义控件简介一
- 纯css实现苹果表盘动画
- [从头学数学] 第58节 角的度量
- Object-C--->Swift之(七)函数重载
- SHDP--Working With HBase(一)之基本介绍
- Rsync+Inotify+LVS实现Discuz的负载均衡
- ASPxGridView控件常用示例二:添加和初始化新行
- 获取版本号
- AngularJS中监视Scope变量以及外部调用Scope方法
- [ZJOI 2013] bzoj3110 K大数查询 (整体二分)
- 231,NSOperation和NSOperationQueue
- Android settings中SwitchPreference的简单处理
- 安卓桌面小控件App Widget
- swift手记-3
- Ubuntu与Win7双系统安装黑屏
- 优先队列的用法
- ZOJ 1058 题目大意就是 两个字 换钱。
- ajax是什么