设计一个算法,判断一个正的n(n>2)位数是不是回文数,用自然语言描述算法步骤
- 提问者网友:杀生予夺
- 2021-07-25 07:12
- 五星知识达人网友:七十二街
- 2021-07-25 08:46
1、输入一个位数大于2的正整数;
2、保存这个数;
3、将这个数转换为字符串并测量长度,然后拆成字符串数组;
4、将数组顺序倒转后在转换为字符串,再将字符串转换为正数;
5、比较两个数数否相等。
- 1楼网友:骨子里都是戏
- 2021-07-25 10:22
代码:
// GetHuiWen.java
import java.util.*;
//判断回文数
class Judgement {
// 判断十进制整数是回文数,成功返回true,失败返回false
public boolean Judgement1(int n) {
int k,a,m=0;
k=n;
while(k!=0) {
a=k%10;
m=m*10+a;
k=k/10;
}
return(m==n);
}
// 判断整数的二进制数是回文数,成功返回true,失败返回false
public boolean Judgement2(int m) {
// temp为装载整数的二进制表示数的临时变量
String temp="";
temp=Integer.toBinaryString(m);
// 字符数组d[],f[]帮助判断两字符串是否具有回文性
char d[]=new char[temp.length()];
char f[]=new char[temp.length()];
d=temp.toCharArray();
for(int j=d.length-1,u=0;j>=0&&u<d.length;j--,u++)
f[j]=d[u];
for(int v=0;v<d.length;v++)
if(f[v]!=d[v])
return false;
return true;
}
}
//判断显示回文数的用户交互程序
public class GetHuiWen {
// 主函数
public static void main(String[] args) {
//创建判断回文数的对象实例
Judgement jt=new Judgement();
// 从终端输入一个整数
int value; // 将要输入的整数值
System.out.println("输入一个整数值,再回车:");
Scanner cin = new Scanner(System.in);
value = cin.nextInt();
// 使用判断回文数的对象实例,判断回文,并输出
System.out.println("从0到输入的整数"+value+"之间,整数和二进制
数都是回文数的为:");
for(int i=0;i<value;i++)
if((jt.Judgement1(i))&&(jt.Judgement2(i))){
System.out.println(i+" (其二进
制"+Integer.toBinaryString(i)+")");
}
}
}
希望对你有帮助!