Ⅰ 什么是回文数
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
(1)判断回文数算法扩展阅读
回文数算法:随意找一个十进制的数,把它倒过来成另一个数,再把这两个数相加,得一个和数,这是第一步;然后把这个和数倒过来,与原来的和数相加,又得到一个新的和数,这是第二步。
照此方法,一步步接续往下算,直到出现一个“回文数”为n。例如:28+82=110,110+011=121,两步就得出了一个“回文数”。如果接着算下去,还会得到更多的“回文数”。这个过程称为“196算法”。
Ⅱ c语言回文数判定
除法和求余算法判断回文数:把一个数的各个位上的数字独立出来
打比方:123
个位上的数字3=123%10;
十位上的数字2=(123/10)%10···
不用数组的话,可以用链栈存储结构,首先把输入的数字通过除法和求余运算把一个数字的各个位拆分开来,再把拆开的一组数字的一半存入链栈,再出栈与剩余的一半数字作比较。
Ⅲ 使用栈判断给定字符串是否是回文的算法
#include <stdio.h>
#define SIZE 50
int isPalindrome(char str[]);
int elementSize=0;
static int i=0;
int main()
{
int j=0,result;
char element,str[SIZE];
printf("请输入字符串,以回车结束:\n");
/*以下用循环结构读入字符数组的元素,防止了因字符串中含有空格而不能全部读入的情况*/
scanf("%c",&element);
while(element!='\n')
{
str[j]=element;
elementSize++;//记录了数组中已有元素的个数
j++;
scanf("%c",&element);
}
if(isPalindrome(str))
printf("该字符串是回文字符串\n");
else
printf("该字符串不是回文字符串\n");
// system("pause");
return 0;
}
/*函数功能:判断字符串是否为回文串*/
int isPalindrome(char str[])
{
/*把数组元素前后对应比较,即第一个元素与最后一个元素比较是否相等,依此类推*/
if(i>=elementSize-i-1)//说明是回文串
return 1;
else if(str[i]==str[elementSize-i-1])
{
i++;//i为全局静态变量
isPalindrome(str);
}
else //出现不相等的情况,说明不是回文串,返回0
return 0;
}
Ⅳ 判断一个整型的二进制数是否回文串,有什么好的算法
#include<stdio.h>
voidshow_binary(intnum);
intis_palindrome_binary(intnum);
intmain(intargc,char*argv[])
{
intnum;
scanf("%d",&num);
show_binary(num);
printf("%d%s
",num,is_palindrome_binary(num)==1?"是回文数":"不是回文数");
return0;
}
voidshow_binary(intnum)
{
charbits[65]={0};
inttmp=num;
inti=0;
for(i=63;tmp;tmp>>=1,--i)bits[i]=tmp&1;
for(i=1;i<65;++i)
{
printf("%d",bits[i-1]);
if(i%4==0)
printf("");
}
printf("
");
}
intis_palindrome_binary(intnum)
{
intdigit=0;
intreverse=0;
inttmp=num;
//计算二进制位数digit
for(digit=0;tmp;++digit)tmp>>=1;
//得到逆向二进制数值
for(tmp=num;digit>0;--digit)
{
reverse<<=1;
reverse|=(tmp&1);
tmp>>=1;
}
//比较
return(reverse==num)?1:0;
}
Ⅳ 什么叫回文数啊一般简单的怎么计算啊
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
(5)判断回文数算法扩展阅读:
四位的回文数有一个特点,就是它决不会是一个质数。设它为abba,那它等于a*1000+b*100+b*10+a,1001a+110b。能被11整除。
人们借助电子计算机发现,在完全平方数、完全立方数中的回文数,其比例要比一般自然数中回文数所占的比例大得多。例如11^2=121,22^2=484,7^3=343,11^3=1331,11^4=14641……都是回文数。
Ⅵ VB中设计算法,判断某一个数是不是回文数(用文字叙述就可以了)
2种方法,
1,是使用VB自带的函数StrReverse
,
一个数字,被翻过来以后,还和原数字相同,就可以判断是回文数了
2.使用循环,每次都2端取数字,都相同,就可以判断为回文数,
当有不同时,跳出循环,不是回文数