写一个函数,对于一个给定的整数,如果它的二进制模式从正向看和反向看是一样的,那么返回true;
2014-07-28 15:05
531 查看
写一个函数,对于一个给定的整数,如果它的二进制模式从正向看和反向看是一样的,那么返回true;也就是实现这样一个函数
boolean isPalindrome(int x);
分析一下,该题目主要是通过移位来实现,二进制模式从正向看和反向看是一样的,说明这个二进制数两边是对称的,
画个图看看:
代码如下:
boolean isPalindrome(int x)
{
int flag = 1,i,j,temp;
while(1){
if(num&(0x1<<flag)){
flag++;
}else{
break;
}
}
printf("%dbits\n",flag);
if(flag%2){
i = flag/2+1;
}else{
i = flag/2;
}
for(j=0;j<i;j++){
temp |= ((num&(1<<j))<<(flag-2*j-1))|((num&(1<<(flag-j-1)))>>(flag-2*j-1));
}
if(temp == num){
return TRUE;
}else{
return FALSE;
}
}
boolean isPalindrome(int x);
分析一下,该题目主要是通过移位来实现,二进制模式从正向看和反向看是一样的,说明这个二进制数两边是对称的,
画个图看看:
代码如下:
boolean isPalindrome(int x)
{
int flag = 1,i,j,temp;
while(1){
if(num&(0x1<<flag)){
flag++;
}else{
break;
}
}
printf("%dbits\n",flag);
if(flag%2){
i = flag/2+1;
}else{
i = flag/2;
}
for(j=0;j<i;j++){
temp |= ((num&(1<<j))<<(flag-2*j-1))|((num&(1<<(flag-j-1)))>>(flag-2*j-1));
}
if(temp == num){
return TRUE;
}else{
return FALSE;
}
}
相关文章推荐
- 1. 给定两个整形变量的值,将两个值的内容进行交换。 2. 不允许创建临时变量,交换两个数的内容(附加题) 3. 求10 个整数中最大值。 4. 写一个函数返回参数二进制中 1 的个数
- 链式A+B有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode* A,ListN
- 1. 给定两个整形变量的值,将两个值的内容进行交换。 2. 不允许创建临时变量,交换两个数的内容(附加题) 3. 求10 个整数中最大值。 4. 写一个函数返回参数二进制中 1 的个数
- 编写函数,检查给定字符串是否整数,如果是,返回其整数值
- 微软2 写一个函数,检查字符是否是整数,如果是,返回其整数值。
- C语言:编写函数将一个整数的二进制位模式从左到右翻转后的值输出
- 有一个二叉树,现在怀疑它有一个结点有2个父节点,请写出一个函数来判断该二叉树是否存在一个节点含有2个父节点。如果存在,返回true,否则返回false。
- 任意给定一个大于等于10的整数A,请写一程序,以最小的时间复杂度找出比A小并且最接近A的一个整数B。要求:A的每位之和与B的每位之和相等 例:如果A=123 那么B=114
- 写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)
- 计算机笔试题:写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整型的函数)
- 中位数 21% 通过 给定一个未排序的整数数组,找到其中位数。 中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数
- C 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数包含了任何非数字字符,函数就返回零。
- 创建存储过程,以部门编号为参数返回该部门的人数及平均工资(返回一个值可以通过函数来实现,但如果要返回多个值,需要使用out或in out模式参数实现)
- 写一个函数,检查字符是否是整数,如果是,返回其整数值
- 写一个函数,检查字符是否是整数,如果是,返回其整数值
- 为下面的函数原型编写函数定义: int ascii_to_integer(char *str); 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数
- 写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)
- 字符串包含一个或多个数字,编写函数把数字字符转化为整数并返回这个整数。如果字符串包含任何非数字字符,函数就返回零。
- 写一个函数,检查字符是否是整数,如果是,返回其整数值(最好用四句代码写出)
- 这个字符串参数必须包含一个或多个数字,函数应该把这些 数字字符转换为整数并返回这个整数。如果字符串参数包含 了任何非数字字符,函数就返回零。