سلام
بله میشه ولی بهتره برا نوشتن برنامه های کلاسی کمی هم به خوتان متکی باشید.
#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[i]-48)*(b[j]-48)+c)%10) > 9 ){
int carry=(ans[i+j]-48 + ((a[i]-48)*(b[j]-48)+c)%10) /10;
ans[i+j] = (ans[i+j]-48 + ((a[i]-48)*(b[j]-48)+c)%10) %10 + 48;
c=((a[i]-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[i]-48)*(b[j]-48)+c)%10;
c = ((a[i]-48)*(b[j]-48)+c ) /10;
}
}
ans[i+j]+=c;
c=0;
}
for (int i=ans.size()-1;i>0;--i)
if (ans[i]=='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>
برگرفته از : .iran-forum.ir
پیروز باشید.