兩個長度長於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...