zoukankan      html  css  js  c++  java
  • Hamming Codes chapter 2.1

      感觉USCAO的题目真是有点难懂,题目比较简单,直接从最小开始枚举就过了

    /*
    
    ID: hubiao cave
    
    PROG: hamming
    
    LANG: C++
    
    */
    
    
    
    
    #include<iostream>
    
    #include<fstream>
    
    #include<string>
    #include<cmath>
    
    using namespace std;
    
    int N,B,D;
    
    int ary[66];
    int count1=0;
    
    bool canfit(int);
    int main()
    
    {
    
        ifstream fin("hamming.in");
    
        ofstream fout("hamming.out");
        
        fin>>N>>B>>D;
        ary[1]=0;
        count1++;
        for(int i=1;i<=pow(2,B)-1&&count1<N;i++)
        {
            if(canfit(i))
                ary[++count1]=i;
        }
    
        int i=1;
        while(i<N)
        {
            if(i%10!=0)
            {
                fout<<ary[i]<<" ";
            }
            else
            {
                fout<<ary[i]<<endl;
            }
            i++;
        }
        if((i+1)%10==0)
            fout<<ary[i]<<endl;
        else
        {
            fout<<ary[i]<<endl;
        }
    
        
    
        return 0;
    
    
    }
    
    bool canfit(int n)
    {
        for(int i=1;i<=count1;i++)
        {
            if(n==ary[i])
                return false;
            int x=n^ary[i];
            int cou=0;
            int m=0;
            while(cou<D&&m<B)
            {
                if(x>>m&1)
                    cou++;
                m++;
            }
            if(cou<D)
                return false;
        }
        return true;
    }
  • 相关阅读:
    安全和加密
    awk
    CentOS7练习
    CentOS7系统引导顺序以及排障
    网络配置
    RAID阵列搭建
    LVM逻辑卷
    java-web——第九课 request
    java-web——第八课 JSTL的显示格式
    java-web——第七课 JSTL
  • 原文地址:https://www.cnblogs.com/cavehubiao/p/3280749.html
Copyright © 2011-2022 走看看