自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hackbuteer1的专栏

走别人没走过的路,让别人有路可走。

  • 博客(61)
  • 资源 (1)
  • 收藏
  • 关注

原创 c++模板类学习

1、模板的概念我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.

2011-08-31 14:17:20 52424 11

原创 开关和灯泡的对应关系

在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分哪个开关控制哪一盏灯?      答案:      设三个开关是1、2、3。打开开关1等半个小时,关上开关1并打开开关2。      进房后去摸灯泡,热的是开关1对应的灯泡;亮的

2011-08-30 14:36:28 12180 7

原创 面试智力题:硬币问题

题目一:      你的面前有30个硬币,其中有10个正面朝上,20个反面朝上,混乱在一团。要求:现在用厚布遮住你的眼睛。要你把30个硬币分成2团,每团正面朝上的硬币个数相等。问:你要怎么分?不能用手去触摸感觉,也没有其他人帮忙。题目二:有4枚硬币,初始状态未知。

2011-08-29 10:35:34 11217 2

原创 面试智力题:天平称球

题目:现有12个球,其中有一个球和其他的球重量不一样,但是外形还是一样的,现在要求你用一个天平在只称3次的情况下找出不一样的这个球来?如果换成13个球那又怎么样呢?题目自己很早以前就看过,但是答案当时没怎么想出来,看过网上答案。刚才一个同学在群上讨论,发现自己还是通过网上

2011-08-29 10:31:37 11192 12

原创 程序员有趣的面试智力题

偶然间在网上看到几个原来没见过的面试智力题,有几个题目在国内流传相当广,什么n个人怎么分饼最公平,屋里的三个灯泡分别由哪个开关控制,三架飞机环游世界,用火柴和两根绳子测量45分钟之类的题目,火星得已经可以考古了,这里就不再说了。     1、考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能

2011-08-28 10:39:18 94561 140

原创 程序员面试100题之十四:强大的和谐

实现一个挺高级的字符匹配算法:给一串很长字符串,要求找到符合要求的字符串,例如目的串:1231******3***2 ,12*****3 这些都要找出来,其实就是类似一些和谐系统。。。。。        这题的真正意思就是,给你一个目标串,如“123”,只要一个字

2011-08-27 20:29:58 12632 12

原创 位运算的应用和分治法在二进制中的应用

位运算应用口诀清零取数要用与,某位置一可用或若要取反和交换,轻轻松松用异或移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。     2 "     3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。     4 ">>>"运算符,右边的位被挤掉,对于左边移出的空位一概

2011-08-27 20:13:55 7707 2

原创 程序员面试100题之十三:求二叉查找树的镜像

题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。例如输入:     8    / \   6   10   /\    /\  5 7  9 11输出:

2011-08-27 16:02:06 4426

原创 POJ 2312 Battle City 优先队列+BFS

相信坦克大战大家都玩过吧,本题就是根据这个游戏设计的。坦克要从起点(Y),到目的地(T),坦克不能通过钢墙(S),河(R),可以在空地在行走(E),射击破坏砖墙(B),射击砖墙时不行走且花费一个单位的时间,在空地上行走时也花费一个单位的时间。求坦克从起点到目的地最少花多少时间,不

2011-08-25 22:40:34 5357 1

原创 二进制在数学中的妙用

十八世纪初,莱布尼茨发明了二进制数,当时的他肯定没有预料到二进制在信息时代会有着如此广泛的应用。二进制数以其工作可靠,运算简单,逻辑严密,容易实现等特点,成为了计算机的专用语言。在计算机科学和大量应用数学领域中,二进制记数法是必不可少的。在趣味数学方面,同样也有广泛的应用。让

2011-08-24 22:17:14 11462 1

原创 面试题

谁给说说这几个函数的内存问题到底是怎么回事。。。题目一:void GetMemory( char *p){ p = (char *) malloc( 100 );}void Test(void){ char *str=NULL; GetMe

2011-08-23 16:59:22 4825 2

原创 24点游戏

24点是一种老少皆宜的游戏,它的具体玩法如下:给玩家4张牌,每张牌的面值都在1---13之间,允许其中有数值相同的牌。采用加、减、乘、除四则运算,允许中间运算存在小数,并且可以使用括号,但每张牌只能使用一次,尝试构造一个多项式,使其运算结果为24.输入:n1,n2,n3,

2011-08-23 16:46:13 6327 5

原创 移数字游戏

题目:有这样一个包含9个圆圈的数阵,如下图所示: 外层8个圈,内层一个圈;将1~8这8个数随机的填写到该数阵的外层的圆圈中,只剩下中间的一个空圆圈。规定每个数字只能按照数阵中的直线从一个圆圈移动到另一个空的圆圈中。通过若干步骤移动,要求将数阵中的数字移动成下图所示状态

2011-08-22 22:16:21 4657 1

原创 任意长度的高精度大整数加法

方法:这里用了数据结构栈,实际上栈更方便实现高精度加法。步骤:1、第一个数据加数按输入顺序(高位到低位)入栈1。此时栈顶为最低位            2、‍第二个数据加数按输入顺序(高位到低位)入栈2。此时栈顶为最低位            3、将栈1、栈2均pop

2011-08-22 16:54:30 9293 3

原创 数字翻译器及其实现

【问题描述】 输入一个正整数N(N最大是4位数),输出它的英文表达。 【样例】输入:1输出:one又输入:12输出:twelve右输入:135输出:one hundred thirty five 思路:1、首先19以内的数字,可以直接输出。。

2011-08-22 16:17:09 7834

原创 用高精度方法计算n! ,并显示n!(阶乘)的值。

【问题描述】  对于任意给定的n值(n为整数,且1【样例】输入:n= 10输出: 3628800又输入:n= 20输出: 2432902008176640000使用整型数组来存储大数类的每一位,并模拟手工乘法的全过程。。#include "stdio.h"#include "stdlib.h"const unsigned int MAX = 10000;

2011-08-22 15:51:25 14878 1

原创 char str[] 和 char *str 的区别

char* get_str(void){ char str[] = {"abcd"}; return str;}       char str[] = {"abcd"};定义了一个局部字符数组,尽管是数组,但它是一个局部变量,返回它的地址肯定是一个已经释放了的

2011-08-21 18:46:09 43352 7

原创 不用比较运算符及循环控制语句,判断int型的a、b两数的大小

看到这个题目的时候,我当时想到的,就是首先进行a-b,然后判断最高的符号位是1还是0。。我想大家也都会想到这一点:int max(int a, int b){ int max[2] = { a, b }; return max[((a - b)&0x8000000

2011-08-21 14:22:00 5762 2

原创 getchar、scanf以及缓冲区的概念

1、getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了。      getch()和getche()是conio.h中的库函数,它的作用是从键盘接收字符,getchar带有回显。

2011-08-20 18:47:47 17236 6

原创 程序员面试100题之十二:求数组中最长递增子序列

写一个时间复杂度尽可能低的程序,求一个一维数组(N个元素)中最长递增子序列的长度。     例如:在序列1,-1,2,-3,4,-5,6,-7中,其最长递增子序列为1,2,4,6。     分析与解法     根据题目要求,求一维数组中的最长递增子序列,也就是找一个标

2011-08-19 22:34:12 7582 2

原创 程序员面试100题之十一:数组循环移位

设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。     不合题意的解法如下:     我们先试验简单的办法,可以每次将数组中的元素右移一位,循环K次。abcd1234--->4abcd123--->34abcd12--->234abcd1--->1234abcd。代码如下所示:RightShift(int *arr, int N

2011-08-18 22:43:54 14670 2

原创 程序员面试100题之十:快速寻找满足条件的两个数

能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。     假如有如下的两个数组,如图所示:    5,6,1,4,7,9,8    给定Sum= 10    1,5,6,7,8,9    给定Sum= 10   分析与解法    这个题目不是很难,也很容易理解。但是要得出高效率的解法,还是

2011-08-18 21:15:15 9223 5

原创 程序员面试100题之九:求子数组的最大和

题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。       例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。       如果不考虑时间复杂度,我们可以枚举出所有子数组并求出他们

2011-08-17 10:59:50 14106 6

原创 程序员面试100题之八:不要被阶乘吓倒(二进制表示中最低位1的位置 )

阶乘(Factorial)是个很有意思的函数,但是不少人都比较怕它,我们来看看两个与阶乘相关的问题: 1、 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。2、求N!的二进制表示中最低位1的位置。        有些人碰到这样的题目会想:是不是要完整计算出N!的值?如果溢出怎么办?事实上,如果我们从"哪些数相乘能得到1

2011-08-15 22:34:20 11392 5

原创 程序员面试100题之七:最长公共子字符串

子字符串的定义和子串的定义类似,但要求是连续分布在其他字符串中。比如输入两个字符串BDCABA和ABCBDAB的最长公共字符串有BD和AB,它们的长度都是2。      最长公共子字符串共有两种解决方法,下面具体说说我的思路方法一:     Longest Commo

2011-08-14 22:46:29 79798 10

原创 程序员面试100题之六:最长公共子序列

题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。      例如:输入两个字符串

2011-08-14 22:44:29 30620 7

转载 程序员面试100题之五:二叉树两个结点的最低共同父结点

题目:二叉树的结点定义如下:    struct TreeNode   {              int m_nvalue;             TreeNode* m_pLeft;             TreeNode* m_pRight;}

2011-08-14 22:28:48 6454 3

原创 程序员面试100题之四:求1+2+...+n

题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。        分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制。但这道题却能有效地考查发散思维能力,而发散思维能力能反映出对编程相关技术理解的深刻程度。       通常求1+2+…+n 除了用公式n(n+1)/2之外,无外乎循环

2011-08-14 21:56:24 6231 2

转载 程序员面试100题之三:不用+、-、×、÷数字运算符做加法

题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。        分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。        看到的这个题目,我的第一反应是傻眼了,四则运算都不能用,那还能用什么啊?可是问题总是要解决的,只能打开思路去思考各种可能性。首先我们可以分析人们是如何做十

2011-08-14 21:31:20 6149 3

原创 程序员面试100题之二:跳台阶问题(变态跳台阶)

题目1:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。分析:这道题最近经常出现,包括MicroStrategy等比较重视算法的公司都曾先后选用过个这道题作为面试题或者笔试题。首先我们考虑最简单的情况。如果只有1级台阶,那显然只有一种跳法。如果有2级台阶,那就有两种跳的方法了:一种是分两次跳,每次跳1级;另外一种就是一次跳2级。现在我们

2011-08-14 21:22:01 19247 4

转载 程序员面试100题之一:对称字符串的最大长度

题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的加强版。要判断一个字符串是不是对称的,不是一件很难的事情。我们可以先得到字符串首尾两个字符,判断是不是相等。如果不相等,那该字符串肯定不是对称的。否则我们接着

2011-08-14 16:55:50 20563 1

原创 约瑟夫环的数学优化方法

首先,约瑟夫环的数学优化方法为:        为了讨论方便,先把问题稍微改变一下,并不影响原意:问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。      我们知道第一个人(编号一定是(m-1)%n)

2011-08-14 16:04:40 11003 4

原创 四道面试题

1、给定一个N个整数元素的数组,元素分别为A1, A2, A3....AN,每个元素分别对应一个权重W1(小于1的float), W2,W3....WN,其和为1,找出其中一个元素Ak,使所有小于Ak的元素的权重之和小于1/2,所有大于Ak的元素的权重之和>=1/2。        思路:首先将该数组按元素值的大小进行升序排列,同样的那个权值数组也要对应的进行排序,因为原先的那个数组的下标和权

2011-08-13 21:24:51 4962 4

原创 七种方式求斐波那契(Fibonacci)数列通项

一:递归实现   使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1。二:数组实现   空间复杂度和时间复杂度都是0(n),效率一般,比递归来得快。三:vector实现   时间复杂度是0(n),时间复杂度是0(1),就是不知道vector的效率高不高,当然vector有自己的属性会占用资源。四:queue实现   当然

2011-08-13 20:29:59 9607 1

转载 OSG使用更新回调来更改模型

使用回调类实现对场景图形节点的更新。本节将讲解如何使用回调来实现在每帧的更新遍历(update traversal)中进行节点的更新。       回调概览       用户可以使用回调来实现与场景图形的交互。回调可以被理解成是一种用户自定义的函数,根据遍历方式的不同

2011-08-13 18:36:33 9320

原创 OpenGL 光照方程的计算

分析程序并计算,请看下面的一段程序,并计算三个顶点1、2和3处的光照的颜色值。必须写出过程,只有结果不得分。#include void init(void) { GLfloat mat_ambient[] = { 0.2, 0.2, 0.2, 1.0 };

2011-08-13 18:12:12 4005

原创 OpenGL 期末考试作业

1、OpenGL中能渲染的基本元素是什么?(曲面)答:OPENGL基本元素:GL_POINTS GL_LINES GL_POLYGON  GL_LINE_STRIPGL_LINE_LOOP GL_TRANGLES GL_TRANGLE_STRIP  GL_TRANGL

2011-08-13 17:46:28 9755 1

原创 数据结构课程设计---------用栈来实现表达式求值

1、需求分析设计一个程序,演示用算符优先法对算术表达式求值的过程。利用算符优先关系,实现对算术四则混合运算表达式的求值。(1)输入的形式:表达式,例如2*(3+4)     包含的运算符只能有'+' 、'-' 、'*' 、'/' 、'('、 ')';(2)输出的形

2011-08-12 21:40:52 64232 8

原创 数据结构课程设计---------最少换车次数问题

问题描述: 设某城市有n个车站,并有m条公交线路连接这些车站。设这些公交车都是单向的,这n个车站被顺序编号为0~n-1。编号程序,输入该城市的公交线路数,车站个数,以及各公交线路上的各站编号。       实现要求:求得从站0出发乘公交车至站n一1的最少换车次数。

2011-08-12 12:55:46 7152

原创 快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方! .

将4的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1(1在奇数位置),并且1后面跟了偶数个0; 因此问题可以转化为判断1后面是否跟了偶数个0就可以了。       4的整数次幂的二进制数都为 (4)100、(16)10000、(64)1000000...

2011-08-12 11:41:15 10096 4

快速筛选素数

快速筛选出10亿以内的素数和非素数

2012-04-06

空空如也

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

TA关注的人

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