您的位置:首页 > 编程语言 > C语言/C++

求数字特征值(C语言)

2016-03-31 20:08 330 查看
对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。

代码:

#include <stdio.h>
#include <math.h>

int main()
{
int n,level=1,byte=1,sum=0,b;
scanf("%d",&n);
if(n>=0 && n<=100000){
b=n%10;
if(b%2)
sum=1;
while(n/10){
n/=10;
b=n%10;
level++;
if(b%2==level%2){
byte=pow(2,level-1);
sum+=byte;
}
}
printf("%d\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 编码 二进制