自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(156)
  • 资源 (4)
  • 收藏
  • 关注

转载 Write a routine that prints out a 2-D array in spiral order

我的理解,给定2维数组1 2 3三角形判断8 9 47 6 5“螺旋式”顺序输出:1 2 3 4 5 6 7 8 9 private static void PrintNumberasSpiralOrder() { // 1 2 3 4 // 12 13 14 5

2012-04-05 21:58:26 313

转载 位计算的诸多算法(计算二进制1的个数)

讲解一:这个问题很常见,在通信编码中叫hamming weight。求解算法也是多种多样。1.最原始的方法依次探测每一位,很简单。实现可以依次移位,也可以递归。这里就不多说了。2.打表将可能的输入进行求值打表,hash思想,快但是浪费空间,也可以划分为字节(或更小 4-bit)后按字节打表,最后把各字节结果相加。3. 快速方法在位运算

2012-04-05 17:18:14 999

转载 不利用浮点运算,在屏幕上画一个圆 (x**2 + y**2 = r**2,其中 r 为正整数)

考虑到圆的对称性,我们只需考虑第一象限即可。等价于找到一条连接点(0,r)到点(r,0)的一条曲线,曲线上的点距圆心(0,0)的距离最接近 r。我们可以从点(0,r)开始,搜索右(1,r),下(0,r-1),右下(1,r-1)三个点到圆心的距离,选择距圆心距离最接近 r 的点作为下一个点。反复进行这种运算,直至到达点(r,0)。由于不能利用浮点运算,所以距离的比较只能在距离平方的基础上

2012-04-05 17:08:36 823

原创 if(x == 0) y=a else y=b 其它几种实现方法

(1)y=a*(1-x)+   b*x(2)y=x?b:a(3)int   y[]={a,b};  x=y[x];

2012-04-05 17:07:22 700

转载 单词反转

/* 单词反转 "I am a student." --> "student. a am I"*/#include #include #include using namespace std;int main(int argc, char** argv){ //* char str[] = "I am a student of BeiHang"; int sz =

2012-04-05 11:17:23 281

转载 给出一个函数来合并两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠

/*给出一个函数来合并两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。//*/#include #include #include using namespace std;void copystr(char pachar[], char pbchar[], int sza, int szb, char* &result);int main(){ cha

2012-04-05 10:58:53 1024

转载 怎样编写一个程序,把一个有序整数数组放到二叉树中(按行输出)

方法1:#include #include #include "queue.h"struct student { int value; struct student *lchild; struct student *rchild;};void arraytotree(int *a, int len, struct student **p) { if(le

2012-04-03 21:47:04 1500

转载 写一个函数,输出字符串中字符的所有排序。(比如:abc acb bac bca cab cba )

方法1:#include #include  void Permutation(char a[], int start, int end){int i,j;char temp;if(start == end){for(i = 0; i printf(" %c ",a[i]);printf("\n");}else{for(i = s

2012-04-03 21:01:41 1467

转载 写一个函数,检查字符是否是整数,如果是,返回其整数值(或:怎样只用4行代码编写出一个从字符串到长整型的函数)

方法1:#include #include #include #include using namespace std;long strtoint(char *str,int length);int main(int argc, char* argv[]){ int i=0; char str[100]; while ((str[i]=getchar())!='0') {

2012-04-03 20:16:21 860

原创 rand(msdn)

/* RAND.C: This program seeds the random-number generator * with the time, then displays 10 random integers. */#include #include #include void main( void ){ int i; /* Seed the random-n

2012-04-03 19:08:30 781

转载 编写反转字符串的程序,要求优化速度、优化空间

#include void reverse(char *_str,int _l) //反转函数,_l指要反转字串的长度 { char*p=_str,*q=_str+_l-1; _l/=2; while(_l>0) { //为了使代码得到优化 采用异或操作符进行交换 *p=*p^*q; *q=*p^*q;

2012-04-03 17:22:15 509

转载 两个变量交换值,不申明第三个变量 (异或操作)

Int a=3;Int b=4;a^=b;b^=a;a^=b;完成了变量值的交换

2012-04-03 17:20:56 442

原创 strstr 输入src 寻找里面是否有子串needle

char * _strstr(const char *src, const char *needle){ const char *p1 = src, *p2 = needle; while (*src != '\0' && *needle != '\0') { if (*src++ != *needle++) { needle =

2012-04-03 17:00:51 352

转载 Write a function to find the depth of a binary tree

struct Node {T data; Node * left, * right; }; int depth (Node * pNode){ return (pNode == NULL) ? 0 : 1 + max (depth (pNode->left), depth (pNode->right)); }

2012-04-02 12:39:35 335

原创 判断数组中是否有重复的数字

方法1: const int N = 10; //int a[N] = {10,8,9,4,3,6,5,1,2,7}; int a[N] = {10,9,8,8,6,5,4,3,2,1}; int i, j= 0; for(i = 0; i != N; ++i) { ++j; int k = a[a[i]-1]; if(i != a[i]-

2012-04-01 10:03:38 1020

转载 解释型 编译型 语言

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。   翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时

2012-03-31 15:03:33 2437

原创 单向链表的反转

struct node{ int a; node *next;};void reverse1(node *head){ node *p = head, *r = head, *q; while (p) { q = p->next; p->next = head; head = p; p = q; } r->next = NULL;

2012-03-21 15:46:24 378

转载 静态联编和动态联编

联编是指一个计算机程序自身彼此关联的过程,在这个联编过程中,需要确定程序中的操作调用(函数调用)与执行该操作(函数)的代码段之间的映射关系;按照联编所进行的阶段不同,可分为静态联编和动态联编;静态联编:是指联编工作是在程序编译连接阶段进行的,这种联编又称为早期联编;因为这种联编是在程序开始运行之前完成的;在程序编译阶段进行的这种联编又称静态束定;在编译时就解决了程序中的操作调用与执行该

2012-03-21 13:16:33 750

转载 关于C中的malloc()和free()

一、malloc()和free()的基本概念以及基本用法:1、函数原型及说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。关于分配失败的原因,应该有多种,比如说空间不足就是一种。void free(void *FirstByte): 该函数是将之前用malloc分

2012-03-20 20:10:08 360

转载 C++大数精度计算(带小数点)

头文件:// WTNumber.h: interface for the CWTNumber class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_WTNUMBER_H__92E62B40_491A_4A75_AB89_FFB160DB2343

2012-03-20 11:27:45 8619 2

转载 C++ 大数

前言:由于计算机运算是有模运算,数据范围的表示有一定限制,如整型int(C++中int 与long相同)表达范围是(-2^31~2^31-1),unsigned long(无符号整数)是(0~2^32-1),都约为几十亿.如果采用实数型,则能保存最大的double只能提供15~16位的有效数字,即只能精确表达数百万亿的数.因此,在计算位数超过十几位的数时,不能采用现有类型,只能自己编程计算.高

2012-03-20 11:22:04 1084 1

转载 sizeof && strlen

#include#includeusing namespace std;struct saa{ unsigned int f1:1; };char foo0();void main(){ int ss[5] = {1,2,3,4,5}; char A[5] = ""; char*B="abcde"; void*C; C=new char[100]; char a1[

2012-03-19 21:50:51 346

原创 结构体&&指针

#include#include using namespace std; //#pragma pack(1)typedef struct{ int a; char c; double d;}BB;typedef struct _AA{ int a; int b; char c; BB bb;}AA;int main(

2012-03-19 20:56:18 789

原创 如何输出源文件的标题和目前执行行的行数

/**************************** *功能:输出源文件的标题和当前执行 * 行的行数 *目的:知识学习****************************/#includeusing namespace std;void main(){ int line=__LINE__;//注意:LINE前后分别是两个下划线“-”(半角

2012-03-19 19:42:19 1292

转载 预编译

预编译又称为预处理,是做些代码文本的替换工作  处理#开头的指令,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等  就是为编译做的预备工作的阶段  主要处理#开始的预编译指令  预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。常见的预编译指令有:  (1)#include 指令  该

2012-03-19 17:17:36 246

转载 C++宏定义

C++ 宏定义将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替。前面已经说过,预处理命令不同于一般C++语句。因此预处理命令后通常不加分号。这并不是说所有的预处理命令后都不能有分号出现。由于宏定义只是用宏名对一个字符串进行简单的替换,因此如果在宏定义命令后加了分号,将会连同分号一起进行置换。一.宏定义          1.不带参数的宏定义:   宏定义又称为

2012-03-19 17:16:16 488

转载 C++ ADO

准备:(1)、引入ADO类#import "c:\program files\common files\system\ado\msado15.dll" \no_namespace \rename ("EOF", "adoEOF")(2)、初始化COM在MFC中可以用AfxOleInit();非MFC环境中用: CoInitialize(NULL);CoUnIniti

2012-03-17 20:31:47 515

转载 用console做调试输出窗口(方法一)

在使用VC++开发界面程序的时候,经常会遇到代码调试的问题,而有时我们有觉得单步调试又很麻烦懒得一步步走下去,于是我们开始怀念基于控制台方式的printf和cout输出信息的方式了。^_^ 下面给大家介绍一个类,可以让你实现这个功能。在需要调试的工程中添加头文件console.h,然后在使用printf和cout前添加代码:    ConsoleWindow window;    wind

2012-03-17 20:29:57 3642

转载 用Visual_C++操作INI文件.doc

在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:  一.将信息写入.INI文件中.  1.所用的WINAPI函数原型为: BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lp

2012-03-17 20:28:16 295

转载 c++ MD5实现

main.cpp点击隐藏C CODE#include #include "md5.h" using namespace std; int main(int argc, char *argv[]){    cout     return 0;}md5.h点击隐藏C CODE/* MD5 converted to C++ class by F

2012-03-17 20:27:20 449

转载 C++ 中int,char,string,CString类型转换

1. c++中string到int的转换1) 在C标准库里面,使用atoi:#include #include std::string text = "152"; int number = std::atoi( text.c_str() ); if (errno == ERANGE) //可能是std::errno {  //number可能由于过大或过小而不能完

2012-03-17 18:42:24 448

转载 MFC托盘

写个成员变量NOTIFYICONDATA m_nid;//for icon on the tray在对话框的OnInitDialog里: m_nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);  m_nid.hWnd=this->m_hWnd; m_nid.uID=IDR_MAINFRAME; m_nid.uFlags=NIF_ICON|NI

2012-03-17 16:59:39 378

转载 MFC中自定义消息

消息映射、循环机制是Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄,可当我们需要完成其它的任务,需要自定义消息,就遇到了一些困难。在MFC ClassWizard中不允许添加用户自定义消息,所以我们必须手动在程序中添加相应代码,以便可以象处理其它消息一样处理自定义消息。自定义消息的步骤如下(举个例子):(1)建立Single Document的MFC Appli

2012-03-17 16:49:40 494

转载 _T和_L

_T("")是一个宏,定义于tchar.h下。[1]  #define __T(x) L ## x   #define _T(x) __T(x)   他的作用是让你的程序支持Unicode编码   因为Windows使用两种字符集ANSI(American National Standards Institute 美国国家标准学会)和UNICODE,  前者就是通常使用的

2012-03-17 16:45:21 303

转载 字符编码方式介绍

1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进

2012-03-17 15:38:54 696

转载 堆和栈的区别

非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据

2012-03-17 09:58:20 199

数据挖掘概念与技术原书第2版ppt(2-9章)

数据挖掘概念与技术原书第2版ppt(2-9章),可用

2011-11-23

Aware Home

新型的人与计算服务的交互通道,新型的人与计算服务的交互通道,新型的人与计算服务的交互通道

2011-11-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除