码迷,mamicode.com
首页 > 编程语言 > 详细

C /C++ 语言练习册

时间:2016-10-25 01:41:58      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:入队   ror   nal   std   writer   set   bin   amp   man   

/**************************************
  整数对应 32 bit 二进制数串中数字1的个数
  2016-10-24
  liukun
***************************************/
#include <stdio.h>
// #include <math.h>

// 整数对应 32 bit 二进制数串中数字1的个数
int binary1counter(int n)
{
    // if(n<0) return -1;
    int i;
    // int binaLength = ceil(log2(n));
    int counter1=0;
    for(i=0;i<32;++i)  //for(i=0;i<binaLength;++i)
    {
        if(n & 1!=0)counter1++;
        n = n>>1;
    }
    printf("%d\n",counter1);
    return 1;
}

int main()
{
    binary1counter(-21);
    return 0;
}

  

 

 

/****************************************
    打印杨辉三角
    date: 2016-10-15
    writer: liu kun
    reference: 数据结构 殷人昆
*****************************************/
#include <iostream>
#include<iomanip>
#include "queue.h"
using namespace std;

//控制数字间隔
char blank[3+1] = "   ";
void YANGVI(int n)
{
    Queue q;
    EnQueue(q,1);EnQueue(q,1);
    int i,j;QElemType s=0,t;
    for(i=1;i<=n;i++)
    {
        cout<<endl;
        // 每行起始位置排版
        for(int bl_count=0;bl_count<n-i;bl_count++)
            cout<<blank;
        EnQueue(q,0);
        for(j=1;j<=i+2;j++) //第 i 行的 i+2 个系数,包括一个 0
        {
            DeQueue(q,t);
            EnQueue(q,s+t); //计算下一行系数并入队
            s=t;
            if(j!=i+2)cout<<setw(sizeof(blank)-1)<<s<<blank;
        }
    }
};
int main()
{
    YANGVI(10);
    return 0;
}
  

> queue.h

#ifndef QUEUE_H_INCLUDED
#define QUEUE_H_INCLUDED
#define MAXSIZE 500
typedef int QElemType;

typedef struct Queue{
    int maxSize=MAXSIZE;
    QElemType *data=new QElemType[maxSize];
    int front=0;
    int rear=front;
}Queue;

void InitQueue(Queue &q);

int EnQueue(Queue &q, QElemType x)
{
    //check full
    if((q.rear+1)%q.maxSize==q.front)
    {
         return 0;
    }
    else{
        q.data[q.rear]=x;
        q.rear = (q.rear+1)%q.maxSize;
        return 1;
    }
}

int DeQueue(Queue &q,QElemType& x)
{
    // check empty, ERROR code 1
    if(q.rear==q.front) return 0;
    else{
        x = q.data[q.front];
        q.front=(q.front+1)%q.maxSize;
        return 1;
    }
}

int QueueEmpty(Queue &q)
{
    if(q.rear==q.front)return 1;
    else return 0;
}

// 引用作为地址传值
int QueueFull(Queue &q)
{
    return (q.rear+1)%q.maxSize==q.front;
}

int QueueSize(Queue& q)
{
    return (q.rear+q.maxSize-q.front)%q.maxSize;
}
#endif // QUEUE_H_INCLUDED
  

  

C /C++ 语言练习册

标签:入队   ror   nal   std   writer   set   bin   amp   man   

原文地址:http://www.cnblogs.com/learn-to-rock/p/5994997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!