public class HuiWenShu {
public static void main(String[] args) {
Systemoutprintln("请输入一个五位正整数");
Scanner sc=new Scanner(Systemin);
int number=scnextInt();
if(number<10000 || number>=100000){
Systemoutprintln("输入的不是五位正整数!");
return;
}
int a=number/10000;
int b=number/1000%10;
int c=number/100%10;
int d=number/10%10;
int e=number%10;
if(a==e && b==d){
Systemoutprintln(number+"是回文数");
}else{
Systemoutprintln(number+"不是回文数");
}
}
}
运行结果
请输入一个五位正整数
12321
12321是回文数
"回文数"是一种数字如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数
任意某一个数通过以下方式相加也可得到
如:29+92=121 还有 194+491=685,586+685=1271,1271+1721=2992
不过很多数还没有发现此类特征(比如196,下面会讲到)
另外个别平方数是回文数
1的平方=1
11的平方=121
111的平方=12321
1111的平方=1234321
在程序设计中,我们常常会遇到回文数的判断问题,这就需要我们对回文数有所了解,并能编写回文数函数予以调用。在此我用C语言编写了个回文数函数,其中 N 有读者自己定义,其调用很方便。
回文数函数代码如下:
#include <stdioh>
#include<stringh>
#define N 80
int fun(char str)
{
char a[N],b[N];
int i=0,j=0;
while(str)
a[i++]=str++;
a[i]='\0';
while(i>0)
b[j++]=a[--i];
b[j]='\0';
return (strcmp(a,b)==0);
}
问题补充:
人们迄今未能找到五次方,以及更高次幂的回文数。于是数学家们猜想:不存在nk(k≥5;n、k均是自然数)形式的回文数。
在电子计算器的实践中,还发现了一桩趣事:任何一个自然数与它的倒序数相加,所得的和再与和的倒序数相加,……如此反复进行下去,经过有限次步骤后,最后必定能得到一个回文数。
这也仅仅是个猜想,因为有些数并不“驯服”。比如说196这个数,按照上述变换规则重复了数十万次,仍未得到回文数。但是人们既不能肯定运算下去永远得不到回文数,也不知道需要再运算多少步才能最终得到回文数。
#include <stdioh>
#include <mathh>
int x,y;
int separate(int data, int n)
{
int i,j; y=0;
while(n!=0){
(data+y)=n%10;n=n/10;y++;
}
(data+y)='\0';
for(i=0,j=y-1;i<=j;i++,j--){
if((data+i)!=(data+j)){
printf("%d不是回文!!!\n",x);break;
}
}
if(i == y - 1)
printf("是回文数\n");
}
int main()
{
int a[99];
printf("请输入一个正整数:");
scanf("%d",&x);
separate(a,x);
return 0;
}
希望LZ好好学习
假设这个数是变量a,那么:
String s1 = a+"";//转成字符串先
String s2 = "";
for(int i=s1length()-1;i>=0;i--){//把s1反序,用s2接收
s2 += s1substring(i,i+1);
}
if(s1==s2){
Systemoutprint(a+"是回文数");
}else{
Systemoutprint(a+"不是回文数");
}
以上就是关于java 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位全部的内容,包括:java 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位、输入一个三位十进制数,判断该数是否为回文数、C语言程序设计判断一个数是否是回文数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)