数字特征值——奇偶特征 C程序实现
程序员文章站
2022-07-15 11:02:40
...
对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。
程序实现
#include <stdio.h>
#include <math.h>
int main()
{
int x;
int spec = 0, count = 0,flag = 0;
int num[7];
int res = 0;
int i,j=0;
for(i=0;i<7;i++)
{
num[i] = 0;
}
scanf("%d",&x);
while( x != 0)
{
spec = x%10;
count++;
if( spec%2 == count%2 )
{
flag = 1;
}
else
{
flag = 0;
}
num[j] = flag;
j++;
x /= 10;
}
for(i=0;i<7;i++)
{
res = res + num[i]*pow(2,i);
}
printf("%d\n",res);
return 0;
}
运行结果如下:
最后这里输出的是十进制而并非二进制数哦。