找到 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; 返回结果 结束示例代码#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算法开始胜过Karatsuba和Toom-Cook等旧方法,其数字超过2215到2217(10,000到40,000十进制)位。算法开始 function noOfDigit( x) 声明一个变量n并赋值n = 0; while (x > 0) x = x /10 递增n 返回n 结束 开始 SchonhageStrassenMultiplication算法: 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 返回a % mod 结束 开始 Fermat(ll m, int iterations) if (m == 1) ... 阅读更多

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

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

415 次浏览

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

C++程序查找n个数的GCD和LCM

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

4K+ 次浏览

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

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?

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.