我有以下代码,我想在控制台上打印回文。请让我知道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);
}
}
答案 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");
}
}