生成回文数 --第六届蓝桥杯国赛JAVA C组

来源:互联网 发布:钢铁进出口数据 编辑:程序博客网 时间:2024/06/05 20:36
标题:生成回文数
所谓回文数就是左右对称的数字,比如:
585,5885,123321...
当然,单个的数字也可以算作是对称的。
小明发现了一种生成回文数的方法:
比如,取数字19,把它与自己的翻转数相加:
19 + 91 = 110,如果不是回文数,就再进行这个过程:
110 + 011 = 121 这次是回文数了。
200以内的数字中,绝大多数都可以在30步以内变成回文数,只有一个数字很特殊,就算迭代了1000次,它还是顽固地拒绝回文!

请你提交该顽固数字,不要填写任何多余的内容。

题目虽然不难,但是还是有经验可以总结。循环相加时用int 和long 都溢出,然后吧所有的方法转换成BigInteger,拜拜浪费时间,以后还得提前预判才好

package 总决赛;import java.io.*;import java.math.BigInteger;public class 生成回文数 {static boolean is_hws(BigInteger n){//是否是回文数String s = String.valueOf(n);char []c = s.toCharArray();int j = 1;for(int i=0;i<c.length;i++){if(c[i] != c[c.length-j])return false;if(i >= c.length-1-i)return true;j++;}return true;}static BigInteger fzs(BigInteger n){//生成翻转数String s = String.valueOf(n);char []c = s.toCharArray();char f[] = new char[c.length];int l = c.length;for(int i=0;i<c.length;i++){f[--l] = c[i];}//String s1 = "";//for(int i=0;i<c.length;i++){//s1 += String.valueOf(f[i]);//}String s1 = new String(f);BigInteger b = new BigInteger(s1);return b;}static int f(BigInteger n){//n需要多少步可以转换成回文数int num = 0;while(!is_hws(n)){//System.out.println(n);n = n.add(fzs(n));num++;if(num>=1000)break;}return num;}public static void main(String[] args) {// TODO Auto-generated method stub//System.out.print(is_hws(01123211));for(int i=1;i<=200;i++){System.out.println(i+" "+f(BigInteger.valueOf(i)));if(f(BigInteger.valueOf(i))>=1000)System.out.println(i);}//System.out.println(is_hws(887));//f(89);}}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃水果后胃不舒服怎么办 吃水果伤胃了怎么办 大人吃退烧药不出汗怎么办 稍微吃点凉水果胃就疼怎么办 1岁宝宝感冒发烧怎么办 3岁小儿反复发烧怎么办 热感冒喉咙疼要怎么办 孩子感冒咳嗽嗓子疼怎么办 孕妇感冒了嗓子疼咳嗽怎么办 4岁宝宝反复高烧怎么办 小孩吃完药不退烧怎么办 六个月婴儿发烧怎么办退烧快点 咳嗽20天老不好怎么办 吃过退烧药出汗怎么办 5岁儿童发烧39度怎么办 小孩烧到39度怎么办 儿童7岁发烧39度怎么办 发烧没药怎么办怎样退烧快 小孩发烧怎么办怎样退烧快 发烧头疼怎么办最快最有效 发烧头晕怎么办最快最有效 婴儿发烧怎么办最快最有效 孩子一直37度8怎么办 一岁半宝宝37度5怎么办 发烧打了针35度怎么办 小孩发烧吃了鱼怎么办 八个月婴儿发烧39度怎么办 婴儿反复发烧39度怎么办 宝宝发烧了怎么办如何退烧 宝宝烧到38.8度怎么办 小孩发烧到39度怎么办 宝贝发烧到40度怎么办 孩子发烧39度8怎么办 儿子发烧39度该怎么办 孩子发烧39度7怎么办 7个月婴儿发烧怎么办 感冒了头发很油怎么办 5岁宝宝发烧39度怎么办 婴儿烧到39.5度怎么办 1岁多宝宝39.5度怎么办 宝宝发烧40多度怎么办