C判断一个正整数n的d进制数是否是回文数
2015-04-26 03:48
253 查看
所有的有关于回文数的定义和如何判断一个n的d进制数是否是回文数的方法都在我的代码注释当中,直接上代码:
下面是我的程序的运行结果:
#include <stdio.h> int circle(int n,int d); /** * @brief main 判断正整数n的d进制表示是否是回文数 * @return */ int main(void) { /** * 回文数,就是顺着看和倒着看相同的书,例如n=232,十进制书表示为232, * 顺着看和倒着看都是232,则表示n是回文数 * 判断n的d进制表示是否是回文数有两种办法 * 1:先把n转换成d进制表示,然后两个指针从前向后和从后向前 * 同时运算,比较两个char是否相等 * * 2:先顺序译出n的d进制数,然后将各位数字按从低位到高位转换成一个 * 整数,看和n是否相等 * * 这里我们使用第二种方式 */ int n; //要被判断的正整数 //保存进制数 int ds[] = {2,10,16}; printf("Please enter the integer n:\n"); scanf("%d",&n); int i = 0; for(i = 0;i < sizeof(ds)/sizeof(ds[0]);i++){ int isCircle = circle(n,ds[i]); if(isCircle == 0){ printf("%d => <%d>: is not circle!\n",n,ds[i]); }else{ printf("%d => <%d>: is circle!\n",n,ds[i]); } } return 0; } /** * @brief circle 该函数用于判断一个正整数n的 * d进制数是否是回文数 * @param n 被判断的正整数n * @param d 进制数 * @return 1-是回文数,0-不是回文数 */ int circle(int n,int d){ int s = 0; int m = n; while(m){ s = s * d + m % d; m /= d; } return s == n; }
下面是我的程序的运行结果:
相关文章推荐
- C判断一个正整数n的d进制数是否是回文数
- 输入一个正整数,判断其是否为回文数
- 项目39.4-1输入一个正整数,判断其是否为一个回文数(例1221、12321都是回文数,正着看、倒着看,是同一个数)。
- 第三十九讲项目4——输入一个正整数,判断其是否为一个回文数
- 判断一个整数x是否可以表示成n(n>=2)个连续正整数的和
- 第二周__判断一个正整数是否为质数!
- 如何判断一个正整数是否是2的乘方
- 判断一个字符串中所有子串是否为回文子串
- 简单递归____判断一个字符串是否为回文
- 判断一个整数是否为回文数
- 判断一个数是否为回文数,字符串是否为回文字符串
- python判断是否可以只插一个字符,让字符串变成回文,返回true/false
- P51.19(请输入一个正整数n,判断其中各位数字是否奇偶交替出现。)
- [链表] - 判断一个链表是否为回文结构
- 判断一个整数是否为回文数 Check if a number is palindrome
- Python编程判断一个正整数是否为素数的方法
- 输入任意一个5位数,判断其是否是回文数。
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- 初学python:输入一个正整数,并判断是否为水仙花数
- 判断一个正整数是否为质数的算法