找到 34423 篇文章 关于编程

C++程序实现俄罗斯农民乘法

Krantik Chavan
更新于 2019年7月30日 22:30:25

451 次浏览

俄罗斯农民算法用于乘法运算。这是一种快速计算两个大数乘法的算法。算法开始 俄罗斯农民(num1, num2) Int result=0 while (num2 > 0) if (num2 and 1) result = result + n; num1= num1 左移 1位; num2= num2左移 1位; 返回 result 算法结束示例代码#include using namespace std; unsigned int russianPeasant(unsigned int n, unsigned int m) { int result = 0; while (m > 0) { if (m & 1) result = result + n; n = n >> 1; } return result; } int main() { cout

C++程序实现Schonhage-Strassen算法进行两个数的乘法

Krantik Chavan
更新于 2019年7月30日 22:30:25

1K+ 次浏览

Schonhage-Strassen算法用于两个数的乘法运算。Schonhage-Strassen算法是一种渐近快速的大整数乘法算法。在实践中,Schonhage-Strassen算法开始在超过2215到2217位(10,000到40,000十进制)数字的数字上胜过Karatsuba和Toom-Cook等旧方法。算法开始 function noOfDigit( x) 声明变量 n 并赋值 n = 0; while (x > 0) x = x /10 n 自增 return n 算法结束 开始 SchonhageStrassen算法: schonhageStrassenMultiplication(a, b, n, m) 定义数组 linearConvolution[n + m ... 阅读更多

C++程序实现Booth乘法算法,用于计算两个带符号数的乘法

Nancy Den
更新于 2019年7月30日 22:30:25

2K+ 次浏览

Booth算法是一种乘法算法,它使用2的补码表示法来计算两个带符号二进制数的乘法。Booth使用比加法更快的移位计算的计算器,并创建了该算法以提高其速度。算法开始 将被乘数放入BR,将乘数放入QR 然后算法根据以下条件工作: 1. 如果Qn和Qn+1相同,即00或11,则执行算术移位1位。 2. 如果Qn Qn+1 = 10,则A= A + BR并执行算术移位1位。 3. 如果Qn Qn+1 = ... 阅读更多

C++程序执行费马素性测试

Nancy Den
更新于 2019年7月30日 22:30:25

762 次浏览

费马素性测试用于检查给定数字是否为素数。这是一个该算法的C++代码。算法开始 modulo(base, e, mod) a = 1 b = base while (e > 0) if (e mod 2 == 1) a = (a * b) % mod b = (b * b) % mod e = e / 2 return a % mod 算法结束 开始 Fermat(ll m, int iterations) if (m == 1) ... 阅读更多

使用Sundaram筛法在给定范围内生成素数的C++程序

Nancy Den
更新于 2019年7月30日 22:30:25

415 次浏览

这是一个使用Sundaram筛法在给定范围内生成素数的C++程序。该算法由Sundaram于1934年发现。算法开始 printPrimes(n) 在这里我们找出小于n的素数,我们将n-2减少一半。我们称之为New。New = (n-2)/2; 创建一个数组marked[n],它将用于将i+j+2ij形式的数字与其他数字分开,其中1

C++程序查找n个数的最大公约数和最小公倍数

Nancy Den
更新于 2019年7月30日 22:30:25

4K+ 次浏览

这是查找n个数的最大公约数和最小公倍数的代码。两个或多个非零整数的最大公约数(GCD)是能整除每个整数的最大正整数。GCD也称为最大公因子。两个数的最小公倍数(LCM)是最小的非零倍数,它是这两个数的倍数。算法开始 输入两个数字 调用函数gcd()查找n个数的最大公约数 调用函数lcm()查找n个数的最小公倍数 ... 阅读更多

C++程序实现Rabin-Miller素性测试,以检查给定数字是否为素数

Nancy Den
更新于 2019年7月30日 22:30:25

980 次浏览

Rabin-Miller素性测试用于检查给定数字是否为素数。它类似于格式素性测试和Solovay-Strassen测试。该测试首先由俄罗斯数学家M. M. Artjuhov发现。算法开始 ll mulmod(ll a, ll b, ll m) ll x = 0, y = a mod m while (b > 0) if (b mod 2 == 1) 计算 x = (x + y) mod m y = (y * 2) mod m b = b/ 2 ... 阅读更多

#include <bits/stdc++.h>和 #include “filename” 有什么区别?

Chandu yadav
更新于 2019年7月30日 22:30:25

294 次浏览

这两种形式的区别在于预处理器搜索要包含的文件的位置。#include 预处理器以实现相关的方式搜索,它搜索编译器预先指定的目录。此方法通常用于包含标准库头文件。#include "filename" 预处理器在包含指令的相同目录中搜索。如果失败,则它开始表现得像#include形式。此方法通常用于包含您自己的头文件。

为什么我不应该 #include <bits/stdc++.h>??

Arjun Thakur
更新于 2019年7月30日 22:30:25

124 次浏览

这是一个头文件。此文件包含所有标准库。有时在某些编码竞赛中,当我们必须在解决问题时节省时间时,使用此头文件很有用。在软件工程方法中,我们应该减少包含的数量。使用此头文件,它将包含许多文件,有时程序中可能不需要这些文件。因此,它可能会增加编译时间和程序大小。此头文件的一些主要缺点如下所示:这不是GNU C++库的标准头文件。因此,某些编译器可能会编译失败 ... 阅读更多

何时应该使用static_cast、dynamic_cast、const_cast和reinterpret_cast?

Ankith Reddy
更新于 2019年7月30日 22:30:25

339 次浏览

`const_cast` 可用于移除或添加变量的 `const` 属性。如果需要添加/移除变量的 `const` 属性,这将非常有用。`static_cast` 用于普通类型转换。它也负责隐式类型强制转换,也可以显式调用。在将浮点数转换为整数、字符转换为整数等情况下,应该使用它。`dynamic_cast` 用于处理多态性。只有在转换为派生类时才需要使用它。这仅用于继承中,从基类转换为派生类时使用。`reinterpret_cast` … 阅读更多

广告
© . All rights reserved.