C++使用使用string的大数快速模幂运算(的大数快速模幂运算(6))
本次项目目标:使用C++完成对于大数的相关运算,具体有加减乘除取模。
项目要点
1.大数指的是远超long long int的数据
2.将大数用矩阵进行存储,并通过矩阵实现运算
3.本人采用字符串进行存储,应注意char的特点
比如:char a=161;
cout<<(int)a;
此时会输出-95,而不是161,char类型首个比特位是作为正负号的
模幂快速算法
a,m为正整数,将m表示为二进制形式
则
可得
举个例子
代码中有之前的减法 乘法 取模 除法运算
可得以下快速指数算法以及运行截图
#include<iostream>
#include<string>
#include<algorithm>
#include<time.h>
using namespace std;
#define n 10
string dezero(string a)//用来去掉正数前面的0,也就是说可以输入000001类似这样的数字
{
评论0