PDA

View Full Version : ضرب اعداد بزرگ



baby omade
سه شنبه 29 اردیبهشت 1388, 00:30 صبح
سلام من سعی کردم برنامه ی ضرب اعداد بزرگ رو بنویسم اما جواب نمی ده این برنامه است:

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
long int prod2(long int,long int);
double pow10(double);
char num1[100], num2[100];
long int len,len1,len2,f;
int flag;

int main()
{
textmode(BW80);
textcolor(15);
textbackground(1);

clrscr();
printf("Enter first number: ");
gets(num1);
printf("Enter second number: ");
gets(num2);

len1=strlen(num1);
len2=strlen(num2);
flag = 0 ;
if (len1>len2){
flag = 1;
}
if (len2>len2){
flag = 1;
}
if (flag==0)
printf("\n");

/**************** M U L T P L Y N A M B E R S *******************/
f=prod2(len1,len2);
printf("\nMul of these numbers is: ");
printf("%d",f);
getch();
return 0;
}
////////////////////////////////////
long int prod2(long int len1,long int len2)
{
long int x,y,w,z,r,p,q,f,n;
int m,s,k;
if(len1>=len2)
{
while(len1>0)
{
n=len1%10;
s++;
len1=abs(len1/10);
}
}
else{
while(len2>0)
{
n=len2%10;
s++;
len2=abs(len2/10);
}
}
if(s<=3)
{
f=len1*len2;
return f;
}
else{
m=s/2;
k=pow10(m);
x=len1/k;
y=len1%k;
w=len2/k;
z=len2%k;
r=prod2(x+y,w+z);
p=prod2(x,w);
q=prod2(y,z);
f=p*pow10(2*m)+(r-p-q)*k+q;
return f;
}
}
///////////////////////////////

نظر شما چیه؟

tdkhakpur
سه شنبه 29 اردیبهشت 1388, 02:38 صبح
سلام:
به این تاپیک سر بزن شاید کمکت کنه:
سوال: ضرب دو عدد 100 رقمی در هم!؟! (http://barnamenevis.org/forum/showthread.php?t=142378&highlight=300+%D8%B1%D9%82%D9%85%DB%8C)
موفق باشید.