HAMMING CODES 海明码

2018-06-19 14:06 更新

http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=2324

题目大意:(如题)

输入输出:(如题)

解题思路:

简单搜索。按递增顺序搜索要求的n个数,然后跟前面的数判断距离是否大于d,找到的一组解即为最小的。

注意:

1.0在每组数据里面都出现。

2.b给出了搜索的最大值:2^b-1。

3.计算两个数a,b的距离,只要计算a^b的二进制形式中1的个数。

核心代码: 

int dist(int x,int y) 
  
{ 
  
    int cnt,tmp; 
  
    cnt=0; 
  
    tmp=x^y; 
  
    while(tmp>0) 
  
    { 
  
        cnt++; 
  
        tmp-=(tmp&(-tmp)); 
  
    } 
  
    return cnt; 
  
} 


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号