JAVA常见算法题(二十四)

package com.xiaowu.demo;

//一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
public class Demo24 {
    public static void main(String[] args) {
        f2(123454321);
    }

    // 方法一
    public static void f1(int n) {
        if (n >= 10000 && n < 100000) {
            String s = String.valueOf(n);
            char[] c = s.toCharArray();
            if (c[0] == c[4] && c[1] == c[3]) {
                System.out.println(n + "是一个回文数。");
            } else {
                System.out.println(n + "不是一个回文数。");
            }
        } else {
            System.out.println(n + "不是一个5位数!!!");
        }
    }

    // 方法二
    public static void f2(int n) {
        boolean flag = true;
        String s = Long.toString(n);
        char[] c = s.toCharArray();
        int j = c.length;
        for (int i = 0; i < j / 2; i++) {
            if (c[i] != c[j - i - 1]) {
                flag = false;
            }
        }
        if (flag) {
            System.out.println(n + "是一个回文数。");
        } else {
            System.out.println(n + "不是一个回文数。");
        }
    }
}
时间: 2024-07-30 21:47:59

JAVA常见算法题(二十四)的相关文章

JAVA常见算法题(二十八)

package com.forezp.util; import java.util.Arrays; /** * 两个int数组,都是从小到大的的排列,请合并为一个新的数组,也是从小到到大的排列, * 请写出性能最优的算法.<br> * * * * @author Administrator * */ public class ArrayDemo1 { public static void main(String[] args) { int[] a = { 1,3,5,7,9}; int[] b

JAVA常见算法题(二十九)

package com.forezp.util; import java.util.Scanner; /** * 判断输入的5个字符串的最大长度,并输出 * * * @author Administrator * */ public class StringDemo{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String[] str =new String[5]; for(int x

JAVA常见算法题(二十)

package com.xiaowu.demo; /** * * 打印出如下图案(菱形) * * * * @author WQ * */ public class Demo20 { public static void main(String[] args) { display(5); } public static void display(int h) { for (int i = 0; i < (h + 1) / 2; i++) { for (int j = 0; j < h / 2 -

JAVA常见算法题(三十四)---计算加密之后的电话号码

某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的, 加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字, 再将第一位和第四位交换,第二位和第三位交换. 求加密之后的数字. public static void main(String[] args) { f(2345); } public static void f(int num) { int[] c = new int[4]; if (num > 999 && num < 10000) {

JAVA常见算法题(二十七)

题目:给定一个存放整数的数组,请写一个算法,把偶数移动到该数组的右边,奇数放在该数组的左边,请考虑时间和空间的最优算法. package com.forezp.util; /** * 题目:给定一个存放整数的数组,请写一个算法, * 把偶数移动到该数组的右边,奇数放在该数组的左边,请考虑时间和空间的最优算法. * * @author Administrator * */ public class ArrayDemo { //判断是否为偶数 public static boolean isEven

JAVA常见算法题(三十)

package com.forezp.util; import java.io.BufferedReader; import java.io.FileReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; /** * 一个文本中包含多行字符串,输入长度最长的字符串和最短的字符串<br> * * @author Administrator * */ pu

JAVA常见算法题(二十三)

package com.xiaowu.demo; /** * 给一个不多于5位的正整数,要求:①求它是几位数:②逆序打印出各位数字. * * * @author WQ * */ public class Demo23 { public static void main(String[] args) { f(123789); } public static void f(long l) { String s = Long.toString(l); char[] c = s.toCharArray(

JAVA常见算法题(三十五)

判断一个整数能被几个9整除. public static void main(String[] args) { f(729); f(730); } public static void f(int n) { int tmp = n; int count = 0; for (int i = 0; tmp % 9 == 0;) { tmp = tmp / 9; count++; } System.out.println(n + "能够被 " + count + "个9整除.&qu

JAVA常见算法题(二十一)

package com.xiaowu.demo; //求1+2!+3!+...+20!的和. public class Demo21 { public static void main(String[] args) { sum(20); } public static void sum(int n) { long sum = 0; long fac = 1; for (int i = 1; i <= n; i++) { fac *= i; sum += fac; } System.out.pri