算法
rcbblgy
这个作者很懒,什么都没留下…
展开
-
求两个int变量的最大公约数
int gcd(int v1, int v2) { while (v2) { int temp = v2; v2 = v1 % v2; v1 = temp; } return v1; }原创 2008-10-28 14:58:00 · 671 阅读 · 0 评论 -
递归
直接或间接调用自己的函数称为递归函数。一个简单的递归函数例子是阶乘的计算。数 n 阶乘是从 1 到 n 的乘积。例如,5 的阶乘就是 120。 1 * 2 * 3 * 4 * 5 = 120解决这个问题的自然方法就是递归: // calculate val!, which is 1*2 *3 ... * val int factorial(int val) {原创 2008-11-06 15:04:00 · 994 阅读 · 1 评论 -
输入两个字符串,返回较长的一个
// find longer of two strings const string &shorterString(const string &s1, const string &s2) { return s1.size() }为这样的小操作定义一个函数的好处是:1、阅读和理解函数 shorterString 的调用,要比读一条用等价的条件表达式取代函数调原创 2008-11-06 16:08:00 · 678 阅读 · 0 评论 -
最简单的重载
#includeusing namespace std;void fun(double a);void fun(int a,int b = 2);void main(){ int i = 1; fun(i);}void fun(double a){ cout}void fun(int a, int b /*= 2*/){ cout}红色部分不注释掉会报错:error C2572: fun :原创 2008-11-07 11:58:00 · 505 阅读 · 0 评论 -
随机数
1. 如何产生一定范围内的随机数?直接的方法是: rand() % N;返回从 0 到 N - 1 的数字。但这个方法不好,因为许多随机数发生器的低位比特并不随机。一个较好的方法是: (int)((double)rand() / ((double)RAND_MAX + 1) * N);如果你不希望使用 double,另一个方法是: rand() / (RAND_MAX / N +转载 2008-11-07 13:26:00 · 531 阅读 · 0 评论 -
去除字符串中首尾的空格
void change(char *p){ int nLen = strlen(p); int nFirst = 0; int nLast = 0; for (int i=0; i!=nLen; ++i) { if ( != *(p+i)) { nFirst = i; break; } } for (int i=nLen-1;原创 2010-04-17 14:46:00 · 948 阅读 · 0 评论 -
判断一个数字是否为质数-------摘自《C++标准程序库》
bool IsPrime(int number){ number = abs(number); if (0 == number || 1 == number) { return true; } int divisor; for (divisor = number/2; number%divisor != 0; --divisor) { } re原创 2011-06-12 17:18:00 · 1827 阅读 · 0 评论