欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数字特征值——奇偶特征 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;

}

运行结果如下:
数字特征值——奇偶特征 C程序实现
最后这里输出的是十进制而并非二进制数哦。

相关标签: 数字特征值 C