C/C++教程

数字特征值(C语言)

本文主要是介绍数字特征值(C语言),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目内容:

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

代码如下:

#include<stdio.h>
#include<math.h>
int main()
{
	int a = 0, b = 0, c = 0,add=0,num=0,fbl=0;
	scanf("%d", &a);
	while (a > 0)//循环分解输入数字。
	{
		c++;//对每位数字进行编号。
		b = a % 10; //分解出输入数字的各位。
		a = a / 10;//计算分解后剩下的a。
		if((b%2==0)&&(c%2==0)||(b%2!=0)&&(c%2!=0))//按照题意对输入数字和编号进行判断。
		{
			add = 1;
		}
		else {
			add = 0;
		}
		 fbl= (add % 10)*pow(2,(c-1));//二进制转换为十进制。
		num=num+fbl;//转换后的数加起来。
	}printf("%d", num);//输出。
	return 0;

 

这篇关于数字特征值(C语言)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!