- 博客(4)
- 收藏
- 关注
原创 快速幂
快速幂用了分治的思想。首先,a^b = a^c * a^d(c + d = b),然后可以分成大致相等的两部分进行乘方,然后再合并。时间复杂度为O(n/2) 因为本人比较懒(不想做高精度乘法)就用java实现了。import java.io.*; import java.util.*; import java.math.*; public class fast {
2012-03-25 19:29:13 1010
原创 少包含了一个头文件的后果
我们有的时候会在头文件中包含一些类,但是当我们忘记包含的时候,会出现什么呢?当然是编译不通过。会说在标识符XXX前少了";"(其实加上去是不对),然后再说一堆错误。当我遇到这个错误时,我想了很久也没有想出来,后来才知道原来是少包含了一个头文件。 (以下是个人愚见) 程序开始时,有#include语句,然后如果这个类所属的头文件没有被包含的话,也就是说编译器不知道有这个类,当然会报错了。
2012-03-25 11:56:20 720
原创 圆形热点按钮的制作
说明: 绘制一个圆形的按钮,如果鼠标悬停在圆里面时,边框变成黑色,否则为白色。 过程: 思路如下:首先在对话框中绘制一个圆形,然后处理WM_MOUSEMOVE消息,计算出当前鼠标所停的点是否在圆里面。如果在,那么就在绘制时把边框变成黑色的。再处理WM_LBUTTONUP,如果鼠标在圆里面,就弹出一个对话框。 首先先定义类circle class circle : public CWn
2012-03-24 11:39:30 925
原创 为什么能用位运算来交换数据
我们知道,用位运算能交换整型数据。这是实现代码。(注:下面的^都代表是异或而非乘方) int i,j; cin >> i >> j; i = i ^ j; j = j ^ i; i = i ^ j; 我们首先要知道三件事: 1 . a^b=b^a 证明过程很简单。因为0^0=0^0 0^1=1^0 1^0=0^1 1^1=1^1,又因为无论是a^b还是b^a,都是按位异或的,所以a
2012-03-18 18:27:17 443
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人