本博是阅读到第六章之后看到有人以这种方式记录,感觉比在书上作突出标记回顾起来更方便,故写下者篇博。学习过程中,陆续更新。
- 判断一个数的平方根是否为整数
int m=floor(sqrt(n)+0.5);
if(m*m==n) printf("%d\n",n);
由于误差的影响,整数1可能会变成0.9999999999,floor的结果可能会是0而不是1,为了减小误差的影响,一般改为四舍五入。
- 一种for循环写法
#define _for(i,a,b) for(int i=(a);i<(b);++i)
- 全排列伪代码
void print_permutation(序列A,集合S)
{
if(S empty) put A;
else 按照从小到大的顺序依次考虑S的每个元素v
print_permutation(在A末尾添加v后的新序列,S-v);
}
生成可重复集的排列(1 1 1),统计在两个序列中分别出现的次数,检查是否和前一个元素相同