Nhân 2 số lớn
Bài toán về nhân 2 số lớn chỉ được dùng ngôn ngữ lập trình C/C++
Khi giảng dạy về lập trình nhân 2 đa thức thầy Tichpx lấy ví dụ muốn nhân 2 số nguyên dương với nhau ta biểu diễn nó dưới dạng 1 đa thức có biến là 10 và nhân 2 đa thức với nhau rồi đưa về đa thức mới có biến là 10 lấy các hệ số là xong
Ví dụ muốn nhân \(1234*56\) thì ta xét \(P(x) = 1*x^3+2*x^2+3*x+4\) và \(Q(x)= 5x+6\) sau đó nhân 2 đa thức với nhau ta được \((P*Q)(x) = 5*x^4+16x^3+27x^2+38x+24\)
Sau đó ta thay \(x=10\) vào ta được
\( 1234*56 = 5*10^4+16*10^3+27*10^2+38*10+24 = 4+2*10 + 38*10+ 27*10^2+ 16*10^3 +5*10^4 = ... =\)
\( = 4+0*10 +1*10^2 + 9*10^3 +6*10^4 = 69104\)
Toto đã áp dụng được cách này để nhân 2 số lớn nhưng để đẩy nhanh thuật toán Toto đã cải tiến không phải là x=10 mà biểu diễn qua đa thức với x=1000 bạn hãy giúp Toto nhé
Input
Hai dòng mỗi dòng chứa một số nguyên dương không vượt quá 100 chữ số
Output
Tích của hai số
Yêu cầu : chỉ được dùng ngôn ngữ lập trình C/C++
Ví dụ
Input
1234
56
Output
69104
Comments
code tham khảo