C语言实现计算双基回文数详解
来源:互联网 发布:原型设计软件 编辑:程序博客网 时间:2024/06/06 01:49
双基回文数的定义:
如果一个正整数n至少在两个不同的进位制(二进制<=进制=<十进制)b1和b2下都是回文数,则称n是双基回文数。
根据定义,简单的说就是在二进制到十进制之间(包括十进制和二进制),如果n在这其中任意两个进制上是回文数,则n就是双基回文数。
程序功能:
输入正整数S<10^6,输出比S大的最小双基回文数
源代码及注释:
#include<stdio.h>//把主函数放前面比较好看int main(){int n;//定义n作为sjHuiWen函数中形式参数s的实际参数int count=0; //count用于计数,初始值为0printf("Enter a number:");scanf("%d",&n);//读取要处理的数字 ,如2200,该数字不一定为回文数,因为我们想要求的只是比该数字大的最小回文数int a=n;//使用a先把n的值保存一下bool sjHuiWen(int m,int base); //定义base代表进制//下面会调用sjHuiWen函数,调用之前要先声明一下while(count!=2){n++;count=0;for(int base=2;base<=10;base++){if(sjHuiWen(n,base))//if判断只会在括号内为true时才会执行下一步操作,如果sjHuiWen函数返回true,则表示n是回文数{count++; //n是回文数则+1}if(count==2) break;//调用sjHuiWen函数判断n是不是回文数,如果在两个进制下都是回文数,则跳出循环}}printf("比%d大的最小双基回文数为:%d\n",a,n);return 0;}//定义sjHuiWen函数 ,功能是判断数字n在进制base下是不是回文数bool sjHuiWen(int m,int base)//m是形式参数,n是实际参数//定义一个函数sjHuiWen,函数类型为布尔类型(由于return返回的值flag是布尔类型,所以函数就是布尔类型){int str[10],i = 0; //定义一个数组str,长度为40bool flag = true; //定义一个布尔类型的变量flag,赋初值为truewhile(m) //m是一个整型变量,当m还是一个整型变量时就继续循环,直到m不是一个整型变量{str[i++] = m%base;//取余,从m的个位开始将每一位上的数字变成base位进制并依次存入数组m /= base; //每取一次余数,就把最后一位的数字去掉}for(int j = 0;j <= i/2;j++){if(str[j] != str[i-j-1]){flag = false;}elsereturn true;}return flag;}
运行截图:
end
更多内容请访问我的个人网站荒原之梦
阅读全文
0 0
- C语言实现计算双基回文数详解
- 双基回文数(C语言)
- C语言实现判断回文数
- C语言 回文数
- C语言:回文数
- C语言实现判断素数,回文数,水仙花数,闰年
- C语言判断回文数
- C语言求回文数
- c语言算法-回文数
- C语言--判断回文数
- [leetcode]Valid Palindrome (判断回文数 C语言实现)
- C语言 编写程序实现回文数的判断。
- 回文数的判断(C语言实现)
- 详解判断回文字符串和回文数算法的C语言代码!
- C语言实现素数,最小公倍数,最大公约数,回文数,质数,完数,水仙花数算法
- JS实现计算最少回文切割数
- C语言-数组指针判断回文数
- C语言 - 回文数的算法
- Mysql——FIN_IN_SET 和 IN 对比
- 白话C++系列 (对象的引用和对象的指针)
- 为什么没有一款框架完善做到安卓、ISO、小程序、Web同步
- linux下安装texlive2017
- ArrayList和LinkedList的区别
- C语言实现计算双基回文数详解
- Postgresql 获取某张表的oid
- python学习之路-用户登录作业练习
- 初学者日志 12/15 数组
- Java就业指导
- Mac OS 查看端口和杀死进程
- JS 开发者:最喜欢 React,Vue.js 比 Angular 值得尝试
- jvm 堆栈之深入理解
- Spring/Maven/MyBatis配置文件结合properties文件使用