首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

生成回文数的有关问题

2013-12-19 
生成回文数的问题。1.是生成回文数,不是判断~2.范围是随机输入的,最大不超过signed int。3.比如cinminma

生成回文数的问题。
1.是生成回文数,不是判断~
2.范围是随机输入的,最大不超过signed int。
3.比如cin>>min>>max; //100 & 1,000,000,000
4.不能循环max-min次,时间成本太恐怖。

菜鸟没啥思路,除了5(4、3、2、1)层循环这种逗比想法。。。

生成回文数的有关问题谢谢指点先~


[解决办法]
回文数格式

1)按照位数,可以分为偶数位数字和奇数位数字两种情况
N=2K 或者2K+1
 
  1.1)偶数位数字:     高K位 低K位
  1.2)奇数位数字:     高K位 中间1位 低K位
K =0 就是1位数字的情况 0~9 ,共10个数,可以认为都是回文数。

2)特点
 2.1)高K位 和 低K位 是对称的。
 2.2)最高位不能为0。
按照这个思路处理就可以了。


[解决办法]
变量a b记录min max的位数
再随机生成(a+1)/2~(a+b)/4个数
回文(a-1)/2~(a+b-4)/4个数

热点排行