大數相乘模板

2021-06-25 09:35:21 字數 1011 閱讀 6691

兩個長度長於50000的數相乘

#include #include #include #include #include using namespace std;

const double pi = acos(-1.0);

//複數結構體

struct complex

complex operator +(const complex &b)

complex operator -(const complex &b)

complex operator *(const complex &b)

};/*

* 進行fft和ifft前的反轉變換。

* 位置i和 (i二進位制反轉後位置)互換

* len必須去2的冪

*/void change(complex y,int len)

if(j < k) j += k;

}}/*

* 做fft

* len必須為2^k形式,

* on==1時是dft,on==-1時是idft

*/void fft(complex y,int len,int on)}}

if(on == -1)

for(int i = 0;i < len;i++)

y[i].r /= len;

}const int maxn = 200010;

complex x1[maxn],x2[maxn];

char str1[maxn/2],str2[maxn/2];

int sum[maxn];

int main()

len = len1+len2-1;

while(sum[len] <= 0 && len > 0)len--;

for(int i = len;i >= 0;i--)

printf("%c",sum[i]+'0');

printf("\n");

}return 0;

}

大數相乘模板

大數相乘模板 如下 include include define max 100 char a max b max int aa 10005 len aa儲存相乘後的結果,len來相乘後的儲存資料的長度 正序 void multplay y max 10 z max 2 10 int len1,le...

FFT 模板 大數相乘

大數乘法 基準時間限制 2 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 給出2個大整數a,b,計算a b的結果。input 第1行 大數a 第2行 大數b a,b的長度 100000,a,b 0 output 輸出a binput示例 123456 234567 output示...

大數相乘 大數相加

大數相乘 大數相乘 1 include includeint main int ans i while lb 0 int cnt j for i 0 i 0 i if e i break 去除前面多餘的0 if i 1 else 當結果是0的時候 printf 0 printf n return 0...