判断回文,位与,位或
2015-06-22 13:31
239 查看
//判断字符串是否是回文?
int fun(char *sre)
{
char *s1,*s2;
s1 = str;
s2=str+strlen(str)-1;
if(strlen(str)%2 != 0)
{
return 0;
}
while(s1<=2)
{
if(*s1==*s2)
{
s1++;
s2--;
}
else
return 0;
}
return 1;
}
//讲一个字符串转化为十进制数(“123456” to 123456,字符串中只有数字,没有
//没有其他字母,长度不确定)
int str_to_num(char *str)
{
char *temp = str;
int num = 0;
while(*temp != '\0')
{
num = num * 10 + (*temp - '\0');
temp++;
}
return temp;
}
//实现按位与
//int bis(int d, int m);m的二进制位上为1,则把d相应的位 置1
int bis(int d,int m)
{
char temp_1[32],temp_2[32];
int i=0,j=0;
memset(temp_1,'\0',sizeof(temp_1));
while(d != 0)
{
temp_1[i++] = d%2;
d=d/2;
}
memset(temp_2,'\0',sizeof(temp_2));
i=0;
while(m!=0)
{
temp_2[i++]=m%2;
m=m/2;
}
for(i=0;i<32;i++)
{
if(temp_2[i] == 1)
temp_1[i]=1;
}
d = 0;
for(i=0;i<32;i++)
d+=temp_1[i]*pow(2,i);
return d;
}
int bis(int d,int m)
{
char temp_1[32],temp_2[32];
int i=0;j=0;
memset(temp_1,'\0',sizeof(temp_1));
while(d != 0)
{
temp_1[i++] = d%2;
d = d/2;
}
memset(temp_2,'\0',sizeof(temp_2));
while(m != 0)
{
temp_2[i++] = m %2;
m = m/2;
}
for(i=0;i<32;i++)
{
if(temp_2[i]==1)
{
temp_1[i]=0;
}
}
d=0;
for(i=0;i<32;i++)
{
d += temp_1[i]*pow(2,i);
}
return d;
}
int fun(char *sre)
{
char *s1,*s2;
s1 = str;
s2=str+strlen(str)-1;
if(strlen(str)%2 != 0)
{
return 0;
}
while(s1<=2)
{
if(*s1==*s2)
{
s1++;
s2--;
}
else
return 0;
}
return 1;
}
//讲一个字符串转化为十进制数(“123456” to 123456,字符串中只有数字,没有
//没有其他字母,长度不确定)
int str_to_num(char *str)
{
char *temp = str;
int num = 0;
while(*temp != '\0')
{
num = num * 10 + (*temp - '\0');
temp++;
}
return temp;
}
//实现按位与
//int bis(int d, int m);m的二进制位上为1,则把d相应的位 置1
int bis(int d,int m)
{
char temp_1[32],temp_2[32];
int i=0,j=0;
memset(temp_1,'\0',sizeof(temp_1));
while(d != 0)
{
temp_1[i++] = d%2;
d=d/2;
}
memset(temp_2,'\0',sizeof(temp_2));
i=0;
while(m!=0)
{
temp_2[i++]=m%2;
m=m/2;
}
for(i=0;i<32;i++)
{
if(temp_2[i] == 1)
temp_1[i]=1;
}
d = 0;
for(i=0;i<32;i++)
d+=temp_1[i]*pow(2,i);
return d;
}
int bis(int d,int m)
{
char temp_1[32],temp_2[32];
int i=0;j=0;
memset(temp_1,'\0',sizeof(temp_1));
while(d != 0)
{
temp_1[i++] = d%2;
d = d/2;
}
memset(temp_2,'\0',sizeof(temp_2));
while(m != 0)
{
temp_2[i++] = m %2;
m = m/2;
}
for(i=0;i<32;i++)
{
if(temp_2[i]==1)
{
temp_1[i]=0;
}
}
d=0;
for(i=0;i<32;i++)
{
d += temp_1[i]*pow(2,i);
}
return d;
}
相关文章推荐
- java基础—文件的切割与合并
- Billboard(线段树区间更新与求值)
- Javascript原型与对象等知识
- 学习了ZKW费用流
- 试一下LaTeX
- JavaScript 2048小游戏
- Ubuntu安装dos2unix命令
- 关于递归删除链表节点为什么不会断链问题解释
- 类,对象,方法
- mysql数据源spring配置
- 使用apt-fast 来加速你的Ubuntu 的apt
- 求助管理员,这是什么情况
- Cortex-A8嵌入式开发板平台搭建
- pl/sql developer导出数据到excel的方法
- Selenium2学习-016-WebUI自动化实战实例-014-Selenium 窗口选择
- 高性能JavaScript笔记一(加载和执行、数据访问、DOM编程)
- alex教学视频--购物表
- GSON 学习
- 我的代码转风格了
- test