今天小编和大家分享的文章是c语言的三种描述回文数的算法,具有一定参考价值,对c语言回文数有兴趣的可以来看看,希望对你有所帮助。
题目描述
注意:(这些回文数都没有前导0)1位的回文数有0,1,2,3,4,5,6,7,8,9 共10个;2位的回文数有11,22,33,44,55,66,77,88,99 共9个;
* 请问:n位的回文数有多少个?请编写一个递归函数来解决此问题!!!
【输入形式】一行一个正整数,代表多少位【输出形式】一行一个正整数,代表回文诗的个数【样例输入】2【样例输出】9

输入:
3
输出:
90
输入:
5
输出:
900
**输入:
10
输出:
90000**
立即学习“C语言免费学习笔记(深入)”;
输入:
8
输出:
9000
输入:
1
输出:
10
思路分析
通过for循环读入这个数,通过/和%操作将这个数据逆转,然后再对比逆转后的数字是否和原数字相等

通过for循环读入这个数,每次取头位一个数字和末位一个数字,依次比较这两个数字是否相等,再去掉这两个数字,直到剩下一个数字(位数为奇数)或者剩下两个数字(位数为偶数)

通过数学关系,直接判断位数,算出这个位数内的回文数个数;
例如:99899可以把它分为两半,取前面一半998,如果是回文数,其后面一半一定是与其相应位置对应,998为3位数
字,**除第一位(不包含前导0)故与后半对应的位置那个数有9种选择(1-9)外,其他位都与相应的位置有10种
选择(0-9)**,例如第二位和倒数第二位(0-9)所以可以总结出来相同的位数,位数为奇数奇数其回文数有9*10^(n/2)个,注意n/2是整数,位数为偶数的为
910^(n/2-1)个,所以5位数字的的回文数有910*10=900个注意位数为1有10个(0-9),需要特殊处理
相关教程:C视频教程
代码描述
#include #include
#include #include
#include #include
以上就是c语言 三种求回文数的算法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1433160.html