首页 > c语言 三种求回文数的算法-C#.Net教程

回文诗在线生成器,c语言 三种求回文数的算法-C#.Net教程

互联网 2021-03-05 01:57:39
今天小编和大家分享的文章是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

111.png

输入:3输出:90

输入:5输出:900

**输入:10输出:90000**

输入:8输出:9000

输入:1输出:10

思路分析通过for循环读入这个数,通过/和%操作将这个数据逆转,然后再对比逆转后的数字是否和原数字相等

222.jpg

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

333.jpg

通过数学关系,直接判断位数,算出这个位数内的回文数个数;

例如: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视频教程

代码描述1. 第一种思路:#include #include int reverse(long int i,long int *terminate)//递归函数求数值的逆序{if (i
免责声明:非本网注明原创的信息,皆为程序自动获取自互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件24小时内删除。

相关阅读