就乙個簡單的大數計算

2021-07-04 23:00:45 字數 1618 閱讀 4159

也只是剛剛寫出了加法,用的是1 000 000 000進製,不過發現對於加法還不如用最基本的方法方便。用1 000 000 000進製的方便也就在於處理乘法和除法了。計算機做乘除運算還是比較耗時的。

#include 

#include

#include

#include

#include

#include

using namespace std;

const int maxnum=1000000000; //進製

class

bignumcalcu

string patchzero(int m); //補0

void getinput(); //讀取資料

void splitnum();

void sum(); //加法

string sub(); //減法

void multi(); //乘法

string div(); //除法

void randomdata();

private:

fstream fopen;

vector bitnum_1,bitnum_2;

string num_1,num_2,result;

unsigned int numsize_1;

unsigned int numsize_2;

};void bignumcalcu::getinput()

if(numsize_2==num_2.size()/9)

for(int

index=1;index

<=numsize_2;++index)

bitnum_2.push_back(std::stoi(num_2.substr(num_2.size()-index*bignumcalcu::n,9)));

else

for(int

index=1;index

<=numsize_2;++index)

}string bignumcalcu::patchzero(int m)

else

return result=std::to_string(m);

}void bignumcalcu::sum()

else

else

for(int

count=min;count

count)

if((sum=bitnum_1[count]+index)>=maxnum)

else

//如果最高位也需要進製

if(index==1)

result="1"+result;

cout

__author__='markliang'

#coding=utf-8

fopen=open('num.txt','r')

for num1 in

fopen:

num2=fopen.readline();

print("result: ",int(num1)+int(num2))

fopen.close()

至於乘法和除法,我有空在寫吧。

乙個簡單的大數乘法演算法

include using namespace std const int n 1000 自定義大數的長度,可以根據需要調整 void longmulti char str1,char str2 int i,j int str1 lenght strlen str1 int str2 lenght ...

乙個簡單的計算器

乙個非常簡單的計算器 來自sololearn 只能進行單一計算 while true print 設定 print enter 增加 to 增加 two numbers print enter 減去 to 減去 two numbers print enter 相乘 to 相乘 two numbers...

就乙個快速排序。。。

話說,每次寫題的時候我都是呼叫stl的sort,自己卻還是很難快速寫出乙個快排。正好作業布置這個了。就寫一下,熟練一下,順便背一下記住。萬一以後面試問到了,也可以秒了。include include include using namespace std const int maxn 10000 5...