C++

【算法】十进制字符串转十六进制字符串

问题描述 将一个十进制字符串转化为十六进制字符串。 问题解决 这个问题如果只是十进制转化为十六进制,其实是比较容易的,只要了解短除法就可以解决了,但题目里数是字符串,这就将题目的难度增高了。因为如果只是int型,那最多也就支持个10位数;但字符串却可以上千位,所以我们使用短除法的时候会比较麻烦。 这里我先将字符串转成了int型,先把简单的10位数的实现出来,来理顺一下思路。下面是10进制数转16进制的代码: int main(){ string s; while (cin >> s){ int n = 0; // 将字符串转换为int类型 for (int i = s.length() -

  • zgljl2012
6 min read
C++

【ACM】K尾相等数

问题描述: 从键盘输入一个自然数K(K>1),若存在自然数M和N(M>N),使得K^M 和K^N均大于或等于1000,且它们的末尾三位数相等,则称M和N是一对"K尾相等数"。请编写程序,输出M+N最小的K尾相等数。 样例: 输入输出2120问题分析: 末尾三位数只有1000个,从1到无穷大增大幂次时,肯定会出现同样的末尾三位数,比如n=10时(`n^M`大于1000时才有末尾三位数),幂次M12345n^M 10100100010000100000末尾三位数无无000所以当幂次为3时出现了第一个三位数,当幂次为4时出现了第二个三位数,N = 3,

  • zgljl2012
1 min read
C++

【算法】烙饼排序

问题描述: 把一摞大小不一的烙饼按顺序排好,大的在下面,小的在上面, 要求只能用一只手去翻转烙饼位置,另一只手要端盘子; 输出最优化的排序过程。 -------------------------------------------------------------------------------- 示例: 3 1 2 翻转 1 , 当前烙饼排序 3 2 1 成功! -------------------------------------------------------------------------------- 算法描述: 问题解析:一个未排序的数列,如 a,b,c,d,~z 每一次选取其中一个数,将它与最后一个数之间的 所有数(包含它们两个)

  • zgljl2012
2 min read
C++

【Cocos2d-X】TableView的使用

在Cocos2d-x使用TableView的过程如下: * 首先用一个类继承CCTableViewDelegate(代理)和CCTableViewDataSource(数据源); * 然后实现里面的有关tableView操作和内容的四个抽象方法; * 最后就可以在场景类中通过CCTableView来使用这个类,CCTableView会分别设置代理对象和数据源对象 示例: TableView.h #ifndef _TABELVIEW_H_ #define _TABLEVIEW_H_ #include "cocos2d.h" #include "cocos-ext.h" using namespace cocos2d; class TableView : public cocos2d::extension::CCTableViewDelegate, public

  • zgljl2012
2 min read
C++

【Cocos2d-X】中文乱码问题

初学Cocos就遇到了中文的显示问题,在使用CCLabelTTF调用系统字体时,出现的是乱码;使用CCLabelBMFont调用自己设计的fnt文件时,就会什么都不显示。百度了很久之后才明白,字体文件需要的中文得是UTF-8编码的,而项目又是Unicode,所以我们只需要把中文字符串的Unicode编码转化为UTF-8就行了。 Unicode转UTF-8函数: char* EncodeToUTF8(const char* mbcsStr) { wchar_t* wideStr; char* utf8Str; int charLen; charLen = MultiByteToWideChar(936, 0, mbcsStr, -1, NULL, 0); wideStr = (wchar_t*

  • zgljl2012
1 min read
C++

【Cocos2d-X】Cocos2D-X 2.2.6创建项目

使用2.2.6版本创建项目不同于以前可以建立VS的模板从而可以很方便的创建项目,这个版本需要使用Python来创建项目(3.x也会需要Python)。 所以,我们如果想要使用2.2.6版本,就必须先安装Python;然后将Python的路径添加进环境变量;最后是通过使用Python执行Cocos安装路径下的:cocos2d-x-2.2.6\tools\project-creator\create_project.py文件来创建项目。创建的项目会放在cocos2d-x-2.2.6\projects文件夹下。 在这篇文章里有详细过程:http://my.oschina.net/sel/blog/182311

  • zgljl2012
2 min read
C++

C++实现多线程编程

在C++的多线程编程实现里有两种方式,一种是Windows头文件里的CreateProcess,另一种是process.h里的_beginthread,我这里用的是后一种,并且将多线程操作封装成了类似Java里的Thread类。 Thread类包含四种操作(对应线程的几种状态):就绪(start),挂起(suspend)、恢复(resume)以及终止(terminate),另外,还包含了一个可以设置线程超时的操作。 -------------------------------------------------------------------------------- Thread类代码如下(Thread.h): #ifndef THREAD_H #define THREAD_H #include #include typedef

  • zgljl2012
3 min read
zgljl2012@gmail.com