- 博客(15)
- 资源 (41)
- 收藏
- 关注
原创 C++文件操作(2)
打开文件的方式 当我们想要打开的文件不存在的时候,一般地,ofstream类的对象会默认地自动创建一个文件。而如果我们想要打开的文件是存在的,那么就会调用ofstream的构造函数或者是调用open()函数进行打开。下面,我们来看一下MSDN上面是如何定义open()函数的:首先是函数原型:void open( const char *_Filename,
2012-12-27 22:28:45 1364 1
原创 C++文件操作(1)
文件的输出操作 想要程序中的数据输出到文件中,一共需要以下5个步骤:① 包含fstream头文件:#include ② 建立ofstream对象:ofstream ocout;③ 将对象与文件关联:ocout.open(“test.txt”);④ 使用该对象将数据输出到文件test中:ocout⑤ 关闭与文件的连接:ocout.close(); p
2012-12-25 23:54:50 1176
原创 每天一算法(双色河内塔又叫汉诺塔)
说明双色河内塔是由之前所介绍过的河内塔规则衍生而来,双色河内塔的目的是将下图左上的圆环位置经移动成为右下的圆环位置:解法双色河内塔或是原始的河内塔,其解法观念与之前介绍过的河内塔是类似的,同样也是使用递回来解,不过这次递回解法的目的不同,我们来看双色的情况,这很简单,只要将第一柱的黄色移动至第二柱,而接下来第一柱的蓝色移动至第三柱。再来是四个盘的情况,首先必须用递回完成下图
2012-12-19 10:15:00 6363
原创 每天一算法(生命游戏)
说明生命游戏(game of life)为1970年由英国数学家J. H. Conway所提出,某一细胞的邻居包括上、下、左、右、左上、左下、右上与右下相邻之细胞,游戏规则如下:孤单死亡:如果细胞的邻居小于一个,则该细胞在下一次状态将死亡。拥挤死亡:如果细胞的邻居在四个以上,则该细胞在下一次状态将死亡。稳定:如果细胞的邻居为二个或三个,则下一次状态为稳定存活。复活:如果某位置原
2012-12-18 14:48:10 2275 1
原创 每天一算法(八枚银币)
说明 现有八枚银币a b c d e f g h,已知其中一枚是假币,其重量不同于真币,但不知是较轻或较重,如何使用天平以最少的比较次数,决定出哪枚是假币,并得知假币比真币较轻或较重。解法 单就求假币的问题是不难,但问题限制使用最少的比较次数,所以我们不能以单纯的回圈比较来求解,我们可以使用决策树,使用分析与树状图来协助求解。一个简单的状况是这样的,我们比
2012-12-17 23:21:47 1457
原创 每天一算法(du熊填数字)百度之星的题,限时没有完成,补上。
Problem Description du熊这几天使劲的往一个n 行n列的矩阵填0和1这两个数字,n为偶数,而且矩阵由里向外分成了n / 2层。比如n = 6时,矩阵的分层如下: du熊填数时有一个要求:不能存在两个相邻的1,且位于不同的层(这里的相邻指两格子共用一条线)。 请你帮du熊计算一下有多少种填法。Input 输入包含多组测试
2012-12-11 22:57:04 2527 6
原创 每天一算法(du熊学斐波那契I)百度之星限时做。。
Problem Descriptiondu熊对数学一直都非常感兴趣。最近在学习斐波那契数列的它,向你展示了一个数字串,它称之为“斐波那契”串:11235813471123581347112358........聪明的你当然一眼就看出了这个串是这么构造的:1.先写下两位在0~9范围内的数字a, b,构成串ab;2.取串最后的两位数字相加,将和写在串的最后面。上面du熊
2012-12-11 22:13:18 1594
原创 每天一算法(骑士走棋盘)
关于骑士走棋盘问题,,一是不了解走棋盘的规则,二是不了解所要使用的那种由J.C. Warnsdorff在1823年提出的解法的意思是什么。。所以只能读代码,,但还真读懂了人家的代码,并自己实现了一下。。说明骑士旅游(Knight tour)在十八世纪初倍受数学家与拼图迷的注意,它什么时候被提出已不可考,骑士的走法为西洋棋的走法,骑士可以由任一个位置出发,它要如何走完[所有的位置?
2012-12-11 15:58:41 2991
原创 每天一算法(老鼠走迷官二)
接前的老鼠走迷宫一。。基础走迷宫在之前的基础之上,,把能走出迷宫的所有路都显示出来。。解法求所有路径看起来复杂但其实更简单,只要在老鼠走至出口时显示经过的路径,然后退回上一格重新选择下一个位置继续递回就可以了,比求出单一路径还简单,我们的程式只要作一点修改就可以了。int maze[9][9] = {{2, 2, 2, 2, 2, 2, 2, 2, 2},
2012-12-07 16:04:46 1175
原创 每天一算法(老鼠走迷官),,其实是很基本的了。
说明 老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表示老鼠的行走路径,试以程式求出由入口至出口的路径。解法 老鼠的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,无法前进时退回选择下一个可前进方向,如此在阵列中依序测试四个方向,直到走到出口为止,这是递回的基本题,请直接看程式应就可以理解。 #inclu
2012-12-06 23:29:49 1521
原创 每天一算法(三色棋)
说明三色旗的问题最早由E.W.Dijkstra所提出,他所使用的用语为Dutch Nation Flag(Dijkstra为荷兰人),而多数的作者则使用Three-Color Flag来称之。假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳子上进行这个动作,而且一次只能调换两个旗子。
2012-12-06 18:03:23 2011
原创 每天一算法(巴斯卡三角,又称杨辉三角),复习一下下
//巴斯卡三角。返回第n行,n个int nCr(int n,int r){ int p=1; for (int i = 0;i<r;i++) { p *= (n-i); } for (r;r>1;r--) { p /= r; } return p;};//输出前n行void yanhui(int n){ for (int i = 0;i<n;i++) {
2012-12-06 15:16:07 1119
原创 每天一算法(费式数列) 想起来就复习一下下
Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三只免子,三个月后有五只免子(小免子投入生产)......。如果不太理解这个例子的话,举个图就知道了,注意新生的小免子需一个月成长期才会投入生产,类似的道理也可以用于植物的生长,这就是Fibonacci数列,一般习惯称之为
2012-12-06 10:56:30 817
原创 每天一算法(河内之塔),想起来就复习了下下
如果柱子标为ABC,要由A搬至C,在只有一个盘子时,就将它直接搬至C,当有两个盘子,就将B当作辅助柱。如果盘数超过2个,将第三个以下的盘子遮起来,就很简单了,每次处理两个盘子,也就是:A->B、A ->C、B->C这三个步骤,而被遮住的部份,其实就是进入程式的递回处理。事实上,若有n个盘子,则移动完毕所需之次数为2^n - 1。#include #include #include
2012-12-06 10:33:33 1804
原创 C++ VARIANT数据类型操作详解
使用VARIANT来传递参数意味着非强类型语言(例如VBScript)能够调用使用强类型语言(C++)实现的方法。VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义。VARIANT 数据类型在文件OAIDL.IDL中定义如下:struct tagVARIANT { union { struct __t
2012-12-05 11:20:14 16781 2
Scrapy爬虫实践项目
2015-06-26
Dlg_OpenGL
2013-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人