با این code میشه اعداد خیلی بزرگ رو خیلی سریع در هم ضرب کرد . اعدادی که تو هیچ متغیر عددی جا نمیشن #include <iostream> #include <fstream> #include <string> #include <algorithm> using namespace std; string zarb(string &a,string &b){ reverse (a.begin(),a.end()); reverse (b.begin(),b.end()); string ans; ans.insert(0,1000,'0'); // inja mishe andazeye javab ro taghir dad int c=0; int i,j; for (i=0;i<a.size();++i){ for (j=0;j<b.size();++j){ if ( (ans[i+j]-48 + ((a-48)*(b[j]-48)+c)%10) > 9 ){ int carry=(ans[i+j]-48 + ((a-48)*(b[j]-48)+c)%10) /10; ans[i+j] = (ans[i+j]-48 + ((a-48)*(b[j]-48)+c)%10) %10 + 48; ca-48)*(b[j]-48)+c)/10; int k=1; ans[i+j+k]+=carry; while ( ans[i+j+k]>'9' ){ carry = (ans[i+j+k] - '0')/10; ans[i+j+k]= (ans[i+j+k]-48)%10 +'0'; ++k; ans[i+j+k]+=carry; } } else{ ans[i+j] += ((a-48)*(b[j]-48)+c)%10; c = ((a-48)*(b[j]-48)+c ) /10; } } ans[i+j]+=c; c=0; } for (int i=ans.size()-1;i>0;--i) if (ans=='0') ans.erase (ans.end()-1); else break; reverse (ans.begin(),ans.end()); return ans; } int main() { string s1,s2; cin >> s1 >> s2; cout << zarb(s1,s2) << endl; return 0; }</pre>