摘要: 题目:写一个程序, 要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。如:100个1是一个组合,5个1加19个5是一个组合。。。。 请用C++语言写。答案:最容易想到的算法是:设x是1的个数,y是2的个数,z是5的个数,number是组合数注意到0<=x<=100,0<=y<=50,0<=z=20,所以可以编程为:number=0;for (x=0; x<=100; x++)for (y=0; y<=50; y++)for (z=0; z<=20; z++)if ((x+2*y+5*z)==100)number++;cout& 阅读全文
posted @ 2011-05-25 19:45 qi09 阅读(2552) 评论(1) 推荐(1) 编辑
摘要: 题目:在二元树中找出和为某一值的所有路径输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22 和如下二元树 10 / \ 5 12 / \ 4 7则打印出两条路径:10, 12 和10, 5, 7。思路:1、当访问到某一节点时,把该结点的值添加到当前和变量,且把该结点压入栈中。2、若结点为叶子结点,且当前和变量==期望的和,则打印栈中的结点值,即为所需的路径。3、若结点不是叶子结点,继续访问它的左孩子结点,访问它的右孩子结点。4、删除该结点。包括从当前和变量中减去结点值,从栈中弹出结点值。此时,已回到父结 阅读全文
posted @ 2011-05-24 15:59 qi09 阅读(6982) 评论(1) 推荐(0) 编辑
摘要: 首先,来了解一下memmove函数的声明类型,Linux c中的定义如下:#include <string.h>void *memmove(void *dest, const void *src, size_t n);DescriptionThememmove() function copiesnbytes from memory areasrcto memory areadest. The memory areas may overlap.把src所指的内存内容移动到dest指向的内存位置。Return ValueThememmove() function returns a p 阅读全文
posted @ 2011-03-28 14:35 qi09 阅读(1015) 评论(0) 推荐(0) 编辑
摘要: From:http://dev.firnow.com/course/6_system/linux/Linuxjs/200875/130421.html1)往受到系统保护的内存地址写数据有些内存是内核占用的或者是其他程序正在使用,为了保证系统正常工作,所以会受到系统的保护,而不能任意访问.1#include <stdio.h>2int3main()4{5inti = 0;6scanf ("%d", i);/* should have used &i */7printf ("%d\n", i);8return0;9}编译和执行一下,咋一看 阅读全文
posted @ 2011-03-21 11:30 qi09 阅读(864) 评论(0) 推荐(0) 编辑
摘要: 用GDB调试程序(zz)作者:haoel (QQ是:753640,MSN是:haoel@hotmail.com)来源:http://blog.csdn.net/haoel/archive/2003/07/02/2879.aspxGDB概述GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:启动你的程序,可以按照你的自定义 阅读全文
posted @ 2011-03-02 16:22 qi09 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 原文见:http://developer.51cto.com/art/200609/32317.htm一、GCC简介通常所说的GCC是GUN Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使用的高级语言编写的源代码构建成计算机能够直接执行的二进制代码。GCC是Linux平台下最常用的编译程序,它是Linux平台编译器的事实标准。同时,在Linux平台下的嵌入式开发领域,GCC也是用得最普遍的一种编译器。GCC之所以被广泛采用,是因为它能支持各种不同的目标体系结构。例如,它既支持基于宿主的开发(简单讲就是要为某平台编译程序,就在该平台上编译 阅读全文
posted @ 2011-03-02 15:07 qi09 阅读(500) 评论(0) 推荐(0) 编辑
摘要: vi替换命令格式 :ranges /pat1/pat2/g其中:是Vi的命令执行界面。range是命令执行范围的指定:百分号(%)表示所有行; 点(.)表示当前行 美元($)表示最末行range举例:10,20 表示第10到20行,.,$ 表示当前行到最后一行,.+2,$-5 表示当前行后两行直到全文的倒数第五行s表示其后是一个替换命令。pat1这是要查找的一个正则表达式pat2这是希望把匹配串变成的模式的正则表达式g可选标志,带这个标志表示替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串。实例::%s/BLKSIZE/BLKSZ/g 表示把文件中的BLKSIZE替换为BLKSZ。 阅读全文
posted @ 2011-02-23 17:14 qi09 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 转载:http://hi.baidu.com/freelonely/blog/item/340341077c4d287302088189.html预对齐内存的分配在大多数情况下,编译器和C库透明地帮你处理对齐问题。POSIX 标明了通过malloc( ),calloc( ), 和realloc( )返回的地址对于任何的C类型来说都是对齐的。在Linux中,这些函数返回的地址在32位系统是以8字节为边界对齐,在64位系统是以16字节为边界对齐的。有时候,对于更大的边界,例如页面,程序员需要动态的对齐。虽然动机是多种多样的,但最常见的是直接块I/O的缓存的对齐或者其它的软件对硬件的交互,因此,PO 阅读全文
posted @ 2011-02-23 11:19 qi09 阅读(45674) 评论(0) 推荐(3) 编辑
摘要: 本文转载自百度文库。作者如下。其中下面的count, count_if等函数的使用有些陈旧,如在编译时遇到问题,请百度。标准模板库(STL)介绍作者:Scott Field本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函数push_back和push_front插入一个元素到list中 3 list的成员函数empty() 4 用for循环来处理list中的元素 5 用STL的通用算法for_each来处理list中的元素 6 用... 阅读全文
posted @ 2011-01-21 13:32 qi09 阅读(31581) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.kuqin.com/cpluspluslib/20071231/3265.htmlMap是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的姓名就存 阅读全文
posted @ 2011-01-21 10:56 qi09 阅读(471) 评论(1) 推荐(0) 编辑