欧几里得算法,即辗转相除法,用于求整数a,b的最大公约数。
欧几里得算法C++实现代码:(无需确定 a,b 大小关系)
long long gcd(long long a,long long b){
return b?gcd(b,a%b):a;
}
扩展欧几里得算法:设a和b不全为0,则存在整数x和y,使得 gcd(a,b) = xa + yb
证明: 假设 a...
分类:
编程语言 时间:
2014-12-02 13:36:53
阅读次数:
193
1 #include 2 using namespace std; 3 //不推荐用goto,当然用它更快 4 //辗转相除法求两数的最大公约数 5 int gcd(long int a,long int b){ 6 int x=ab){12 int r=a%b;//取...
分类:
其他好文 时间:
2014-12-01 20:43:00
阅读次数:
121
模运算与基本四则运算有些相似,但是除法例外。其规则如下: (a + b) % p = (a % p + b % p) % p (a - b) % p = (a % p - b % p) % p (a * b) % p = (a % p * b % p) % p (a^b) % p = ((a % p)^b) % p 推论: 若a...
分类:
编程语言 时间:
2014-12-01 19:34:05
阅读次数:
191
python命令行整数int和小数float四则运算和括号,整数和求余整数和小数除法,四舍五入等号和变量赋值单引号和双引号字符串三引号和多行字符串unicode编码和utf-8编码其他编码和utf-8编码之间的转化decode和encode以及unicode字符串的+运算,字符串和整数的*运算字符串和字符串..
分类:
编程语言 时间:
2014-12-01 19:30:22
阅读次数:
196
【描述】
模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。
【输入】
输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。
【输出】
在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。
【输入示例】
1+2*10-10/2=
【...
分类:
其他好文 时间:
2014-12-01 08:54:24
阅读次数:
165
问题:给定一个长度为N的整数数组,只允许用乘法,不能用除法,计算任意(N-1)个数的组合中乘积最大的一组,并写出算法的时间复杂度。解法一:用一个数组保存从左边到右边前i个元素的乘积。用另一个数组保存从右边到左边N-i个元素的乘积。然后结果就为两个数组中元素对应的乘积,复杂度为o(N)。解法二:设N个...
分类:
编程语言 时间:
2014-11-27 21:49:36
阅读次数:
182
1-3 输入和显示puts函数只接受 一个 实参,并且在结尾自动换行2-1运算求商运算符 :除法运算符" / ",如果是两个整数相除结果为整数如果需要保留小数时 必须将其中一个除数转换为浮点数。5/3=1 3/5=0 6.0/4=1.5 (List01)求余运算符 int%int用printf函数....
分类:
编程语言 时间:
2014-11-26 23:58:41
阅读次数:
682
Implement pow(x,n).思路:像string to integer一样。考虑的细节较多。 1.测试用例要考虑基数和指数都为正数、负数和零的情况。 2.注意0的0次方在数学上没有意义。 3.用位运算代替乘除和求余优化效率:移位代替除法(n>>1 == n /2);用位与代替求...
分类:
其他好文 时间:
2014-11-26 22:15:49
阅读次数:
182
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。不能用条件语句,基本上只有考虑递归。常规解法:利用构造函数的每次初始化来实现递增class Sum {public: Sum() {num++; sum...
分类:
编程语言 时间:
2014-11-25 20:25:39
阅读次数:
168
对于non-restoring方法,主要是用rem和den移位数据比较,rem_d长度为den+nom的总长,den_d长度为den+nom的总长度,rem_d的初始值为{{d_width{1'b0}},nom};den_d的初始值为{1'b0,den,{(n_width-1){1'b0}}}。每次...
分类:
其他好文 时间:
2014-11-25 12:22:32
阅读次数:
538