BIGBAD
دوشنبه 29 اردیبهشت 1393, 22:48 عصر
سلام من این برنامه ضرب دو عدد بزرگ رو نوشتم ولی برای اعداد 6 رقمی مشکل داره
اگر تونستین مشکلش رو رفع کنید با تشکر
#include <cstdlib>
#include <iostream>
using namespace std;
unsigned long int mult(unsigned long int u,unsigned long int v,int n);
int main(int argc, char *argv[])
{
unsigned long int x,y;
int z;
cout<<"Enter The Number 1: "<<endl;
cin>>x;
cout<<"Enter The Number 2: "<<endl;
cin>>y;
cout<<"Enter the number of measurements :"<<endl;
cin>>z;
cout<<mult(x,y,z)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
unsigned long int mult(unsigned long int u,unsigned long int v,int n)
{
unsigned long int a,b,c,d;
int s;
int j=1;
int l=1;
if(n==1)
return u*v;
else
{
s=n/2;
for(int i=0;i<s;i++)
j=10 * j;
a= ( u / j);
b= ( u % j);
c= ( v / j);
d= ( v % j);
for(int h=0;h<n;h++)
l=l*10;
return mult(a,c,(s)) * (l) + (mult(a,d,(s)) + mult(b,c,(s))) * (j) + mult(b,d,(s));
}
}
اگر تونستین مشکلش رو رفع کنید با تشکر
#include <cstdlib>
#include <iostream>
using namespace std;
unsigned long int mult(unsigned long int u,unsigned long int v,int n);
int main(int argc, char *argv[])
{
unsigned long int x,y;
int z;
cout<<"Enter The Number 1: "<<endl;
cin>>x;
cout<<"Enter The Number 2: "<<endl;
cin>>y;
cout<<"Enter the number of measurements :"<<endl;
cin>>z;
cout<<mult(x,y,z)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
unsigned long int mult(unsigned long int u,unsigned long int v,int n)
{
unsigned long int a,b,c,d;
int s;
int j=1;
int l=1;
if(n==1)
return u*v;
else
{
s=n/2;
for(int i=0;i<s;i++)
j=10 * j;
a= ( u / j);
b= ( u % j);
c= ( v / j);
d= ( v % j);
for(int h=0;h<n;h++)
l=l*10;
return mult(a,c,(s)) * (l) + (mult(a,d,(s)) + mult(b,c,(s))) * (j) + mult(b,d,(s));
}
}