用Java打印Palindrome

时间:2010-08-04 07:15:31

标签: java

我有以下代码,我想在控制台上打印回文。请让我知道if条件中应该包含什么内容,以便它可以在0到10000之间打印所有回文。

回文是161,1221,4554等....

Java代码:

int palindrome[];
palindrome = new int[10000];

for (int count = 0; count < palindrome.length; count++ ){
    palindrome[count] = 0;
    if(){
        System.out.println(count);
    }
}

11 个答案:

答案 0 :(得分:8)

这样做:

    if (isPalindrome(count)) {
        System.out.println(count);
    }

...

public boolean isPalindrome(int num) {
    // implement method here (ie: do your homework)
}

答案 1 :(得分:4)

这样的事情可能会起作用

public boolean isPalindrome(final int num) {
    final String s = Integer.toString(num);
    return s.equals(new StringBuffer(s).reverse().toString());
}

答案 2 :(得分:3)

您需要将数字转换为字符串,然后检查反向字符串是否等于原始字符串。这看起来很像一些家庭作业,如果是这样,请添加适当的标签。

答案 3 :(得分:2)

代码高尔夫解决方案:

   public static boolean isPalindrome(int number) {
       return ("" + number).equals(new StringBuilder("" + number).reverse().toString());
   }

答案 4 :(得分:1)

您也可以撤消该号码并检查反转号码和您的号码是否相等。

要反转数字:继续将其除以10,直到结果为0.保存分区的余数。从你获得的第一个余数开始,将它乘以10并添加下一个余数。继续乘以10并添加余数直到你使用所有余数。

答案 5 :(得分:1)

要反转我使用StringBuffer,StringBuffer(num).reverse()。toString();

答案 6 :(得分:1)

以下是一些提示:

a)要获取数字的最后一位,请使用余数(%)运算符

Example:
result = number % 10; // 21 % 10 = 1

b)要削减最后一位数,除以10

Example:
number = number / 10; // 21 / 10 = 2;

c)将结果乘以10

Example:
result = result * 10; // 1 * 10 = 10

d)重复直到满足某些条件(不应该太难以弄清楚; - ))

答案 7 :(得分:1)

boolean isPalin(int n)
{
 String s = Integer.toString(n);
 return s.equals( new StringBuffer(s).reverse().toString() );
}

所以你的if条件应该包含:isPalin(count)

答案 8 :(得分:0)

boolean isPalin(int n)
{
 int nn = 0, tmp = n;
 while(n > 0)
 {
    nn = nn*10 + n%10;
    n /= 10;
 }
 return tmp==nn;
}

我更喜欢这样做而不是使用字符串,因为字符串使得进程变慢,因为它涉及很多开销。

答案 9 :(得分:0)

import java.util.*;
import java.io.*;

public class TestFinal {
    public static Scanner c = new Scanner(System.in);

    public static void main(String[] args) {
        String original ,reverse ="";
        // TODO, add your application code
        System.out.println("Enter the text!");
        original = c.next();
        int length = original.length();

        for(int i =length - 1;i >= 0;i--)
            reverse = reverse +original.charAt(i);
            if(original.equals(reverse))
                System.out.println("entered strig is a palindrome");
            else
                System.out.println("the text is not a palindrome");
    }
}

答案 10 :(得分:0)

打印回文的简便方法:

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);
        String A=sc.next();

        /* Enter your code here. Print output to STDOUT. */

        int len = A.length();
        String B ="";
        for(int i=len-1;i>=0;i--){
            B=B+A.charAt(i);
        }

        if(A.equals(B))
            System.out.println("Yes");
        else
            System.out.println("No");

    }
}