按照你的要求编写的,输出从0到max中用二进制表示和十进制表示都是回文数的Java程序如下:
import java.util.Scannerpublic class CCF {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in)
System.out.print("请输入一个整数:")
int max=sc.nextInt()
for(int i=0i<=maxi++){
String num = String.valueOf(i)
String num2=Integer.toBinaryString(i)
String reversenum=new StringBuffer(num).reverse().toString()
String reversenum2=new StringBuffer(num2).reverse().toString()
if(reversenum.equals(num) && reversenum2.equals(num2)){
System.out.println(i+"用二进制表示"+num2+"和十进制表示"+i+"都是回文数")
}
}
}
}
运行结果:
请输入一个整数:1000
0用二进制表示0和十进制表示0都是回文数
1用二进制表示1和十进制表示1都是回文数
3用二进制表示11和十进制表示3都是回文数
5用二进制表示101和十进制表示5都是回文数
7用二进制表示111和十进制表示7都是回文数
9用二进制表示1001和十进制表示9都是回文数
33用二进制表示100001和十进制表示33都是回文数
99用二进制表示1100011和十进制表示99都是回文数
313用二进制表示100111001和十进制表示313都是回文数
585用二进制表示1001001001和十进制表示585都是回文数
717用二进制表示1011001101和十进制表示717都是回文数
Scanner in = new Scanner(System.in)System.out.println("请输入一个整数N=:")
int input = in.nextInt()
int i = 0
int sum = 0
int record=input
while(true){
i = input%10
sum =sum*10+i
input /= 10
if(input==0) break
}
if(sum==record)System.out.println("是回文")
else System.out.println("不是回文")
Java语言判断一个字符串是否回文可以通过下面的函数进行判断:
import java.util.Scanner
public class huiwen
{public static void main(String args[])
{Scanner sca=new Scanner(System.in)
String str=sca.nextLine()
int a=str.length()
int middle=a/2,i=3
//char c1=(char) a,c2=(char) a
for(i=0i<middle&&str.charAt(i)==str.charAt(a-1-i)i++)
{}
if(i<middle)
System.out.println(str+"不是回文")
else
System.out.println(str+"是回文")}}
扩展资料:c/c++判断一个字符串是否回文的方法:
#include <iostream>
#include <string>
using namespace std
int main()
{string strint i,j,lint flag = 1
while (cin >>str)
{ l = str.length()for (i = 0,j = l-1i <= ji++,j--)
{ if (str[i] != str[j])
{ flag = 0break}}
if (flag)
cout <<"YES" <<endl
else
cout <<"NO" <<endl
flag = true}
return 0}
参考资料:百度百科-回文串