Java编程题目-5:回文数
来源:互联网 发布:java打印三角形思路 编辑:程序博客网 时间:2024/06/11 07:55
回文数
就是从前向后读和从后向前读出的结果都是一样的。比如:1、2、121、123321
下面给出回文数判断的代码:
/** * 回文数 判断一个数是不是回文数(正读反读都一样:123321、121、1) * * @author cythine * */public class PalindromicNum { public String isPalindromic(String num) { int len = num.length();//数字的长度 char head_c;//从数字前端取字符 char stern_c;//从数字尾端取字符 int head = 0;//前端的指针 int stern = len - 1;//尾端的指针 if (len == 0) { return "Please input correct num!"; } while (head <= stern) { head_c = num.charAt(head); stern_c = num.charAt(stern); //下面的判断是防止数字中混有其他字符 if(head_c>'9' || head_c<'0' || stern_c>'9' || stern_c<'0'){ return "Please input correct num!"; } if (head_c == stern_c) { head++; stern--; } else { return "num:"+num+" is not palindromic!"; } } return "num:"+num+" is palindromic!"; }}
顺便用junit4写了个单元测试类,如下:
public class PalindromicNumTest { @Test public void testIsPalindromic() { PalindromicNum paNum = new PalindromicNum(); String res1 = paNum.isPalindromic("123321"); String res2 = paNum.isPalindromic("1"); String res3 = paNum.isPalindromic("0"); String res4 = paNum.isPalindromic("121"); String res5 = paNum.isPalindromic("123421"); String res6 = paNum.isPalindromic(""); String res7 = paNum.isPalindromic(" "); String res8 = paNum.isPalindromic("123%21"); assertEquals( "num:123321 is palindromic!", res1); assertEquals( "num:1 is palindromic!", res2); assertEquals( "num:0 is palindromic!", res3); assertEquals( "num:121 is palindromic!", res4); assertEquals( "num:123421 is not palindromic!", res5); assertEquals( "Please input correct num!", res6); assertEquals( "Please input correct num!", res7); assertEquals( "Please input correct num!", res8); }}
测试结果:
其实这个回文数的判断就类似于将数组当中的奇偶数换位置(奇数在前,偶数在后)。关键就是对于前后两个元素index的移动和控制。
还可以通过StringBuilder进行字符串反转,代码如下:
public class PalindromicNum { public static void main(String[] args) { String res = PalindromicNum.IsPalindromicNum("12321"); System.out.println(res); } public static String IsPalindromicNum(String num) { String num_reverse = new StringBuilder(num).reverse().toString(); char headC; char sternC; int len = num.length(); for (int i = 0; i < len; i++) { headC = num.charAt(i); sternC = num_reverse.charAt(i); if (headC > '9' || headC < '0' || sternC > '9' || sternC < '0') { return "Please input correct num!"; } if(headC==sternC){ continue; }else{ return "this num "+num+" is not palindromic! "; } } return "this num "+num+" is palindromic! "; }}
0 0
- Java编程题目-5:回文数
- 五十道编程小题目 --- 25 回文数 java
- Java编程之回文数
- 题目766--回文数
- 校招季——编程题目(73) 回文数
- NYOJ---题目766回文数
- 练习题目-挑选回文数
- HuiWenShu.java 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
- Java算法题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
- 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。(java)
- 题目:一个5位数,判断它是不是回文数。
- Java编程题目-7:快乐数
- java回文数
- java判断回文数
- Java回文数
- java判断回文数
- [Java Code]回文数
- Java回文数
- WireShark学习笔记(二)数据包过滤
- nginx HA高可用
- 超简单的时间分钟秒钟倒计时
- IOS中获取各种文件的目录路径的方法
- JCBC-事务
- Java编程题目-5:回文数
- javascript创建对象
- poj 2251(Dungeon Master)
- MacOS系统熟悉
- (数据结构)oj重建二叉树(用权值作为新二叉树的下标)
- linux兴趣小组暑假第五次讲座总结
- 一条线上按距离找点的qt绘图
- java中关键字volatile的作用
- 学习排序