求数字特征值(C语言)

来源:互联网 发布:grub命令启动windows 编辑:程序博客网 时间:2024/05/17 06:31

对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是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;}

0 0