PDA

View Full Version : ضرب دو عدد 20 رقمی



razi.sadeq
شنبه 10 بهمن 1388, 22:02 عصر
سلام
سوال برنامه اینه
http://armanshahremahdavi.persiangig.com/image/1.jpg
میشه راهنمایی کنین اشکالش کجاست ؟ و قسمت سوم را چطوری حل کنم ؟
یه قسمت هاییش را خودم نوشتم

#include <stdio.h>
#include <conio.h>
int ReadData(char arr[20],int count);
int WriteData(char arr[20],int count);
int main()
{


int i=1;
int j=1;
int count=0;
char arr[20];
clrscr();
printf("Enter a number above 20 digits:");
while ((arr[i]=getche()) !='\r')
{
i++;
count++;
}
printf("\nCount:%d",count);
printf("\n%d",arr[i]);

printf("\nYour number is:");
while ( i<=count )
{
switch(arr[i])
{
case '48':arr[j]=0;
case '49':arr[j]=1;
case '50':arr[j]=2;
case '51':arr[j]=3;
case '52':arr[j]=4;
case '53':arr[j]=5;
case '54':arr[j]=6;
case '55':arr[j]=7;
case '56':arr[j]=8;
case '57':arr[j]=9;
printf("%d",arr[j]);
i++;
j++;
}
}
getche();
return 0;

}
int ReadData(char arr[20],int count)
{
int i=1;
while ((arr[i]=getche()) !='\r')
{i++;
count++;
}
printf("\nCount:%d",count);
printf("\n%d",arr[i]);
getche();
return count;
}
int WriteData(char arr[20],int count)
{
int i=1;
int j=1;
while ( i<=count )
{
switch(arr[i])
{
case '48':arr[j]=0;
case '49':arr[j]=1;
case '50':arr[j]=2;
case '51':arr[j]=3;
case '52':arr[j]=4;
case '53':arr[j]=5;
case '54':arr[j]=6;
case '55':arr[j]=7;
case '56':arr[j]=8;
case '57':arr[j]=9;
printf("%d",arr[j]);
j++;
i++;
}
}

}

Salar Ashgi
شنبه 10 بهمن 1388, 22:47 عصر
قمست عمدش اینه که در switch case هاتون ، بعد هر case کلمه break رو ننوشتین .

برای ضرب دو عدد بزرگ هم به لینک های زیر مراجعه کنید :

http://www.barnamenevis.org/forum/showthread.php?t=157329&highlight=%D8%B6%D8%B1%D8%A8+%D8%A7%D8%B9%D8%AF%D8 %A7%D8%AF+%D8%A8%D8%B2%D8%B1%DA%AF

========================
http://www.barnamenevis.org/forum/showthread.php?t=142378&highlight=%D8%B6%D8%B1%D8%A8+%D8%A7%D8%B9%D8%AF%D8 %A7%D8%AF+%D8%A8%D8%B2%D8%B1%DA%AF
========================
http://www.barnamenevis.org/forum/showthread.php?t=71230&highlight=%D8%B6%D8%B1%D8%A8+%D8%A7%D8%B9%D8%AF%D8 %A7%D8%AF+%D8%A8%D8%B2%D8%B1%DA%AF
========================
http://www.barnamenevis.org/forum/showthread.php?t=164466&highlight=%D8%B6%D8%B1%D8%A8+%D8%A7%D8%B9%D8%AF%D8 %A7%D8%AF+%D8%A8%D8%B2%D8%B1%DA%AF

موفق باشید .

amin1softco
شنبه 10 بهمن 1388, 23:07 عصر
برنامه ضرب دو عدد 20 رقمی



include <iostream.h>
#include <conio.h>
int x[20],y[20],w[40],k[20][40];
void multiply(void);
void Sum(void);
void main(){
char t[20];
int i,j,z;
clrscr();
cout << "\n Enter a Number 1 :";
cin >> t;
z=19;
for(i=0;i<20 && t[i];i++);
for(i=i-1;i>=0;i--)
x[z--]=t[i]-48;
cout << "\n Enter a Number 2 :";
cin >> t;
z=19;
for(i=0;i<20 && t[i];i++);
for(i=i-1;i>=0;i--)
y[z--]=t[i]-48;
for(i=0;i<20;i++)
for(j=0;j<40;j++)
k[i][j]=0;
multiply();
}
/
/
void multiply(void){
int i,j,z,z1,tmp,c;
c=0;
z=39;
for(i=19;i>=0;i--)
for(j=19;j>=0;j--){
tmp=(x[i]*y[j])+c;
c=0;
// cout<<tmp<<"\n";
while(tmp>=10){
c++;
tmp=tmp-10;
}
if(i==19)
k[i][j+20]=tmp;
else{
if(j==19){
z--;
z1=z;
}
k[i][z1--]=tmp;
}
}
c=0;
for(j=39;j>=0;j--){
for(i=0;i<20;i++)
tmp+=k[i][j];
tmp+=c;
c=0;
while(tmp>=10){
c++;
tmp-=10;
}
w[j]=tmp;
tmp=0;
}
for(i=0;i<40 && w[i]==0 ;i++);
cout<<"\n\n Value zarb= ";
for(i;i<40;i++)
cout<<w[i];
Sum();
}
/
/
void Sum(void){
int i,tmp,c,s[20];
c=0;
for(i=19;i>=0;i--){
tmp=(x[i]+y[i])+c;
c=0;
while(tmp>=10){
c++;
tmp=tmp-10;
}
s[i]=tmp;
}
cout<<"\n\n Value jam = ";
for(i=0;i<20 && s[i]==0 ;i++);
for(i;i<20;i++)
cout<<s[i];
}

pasak.org
شنبه 06 فروردین 1390, 23:46 عصر
ضرب دو عدد 40 رقمي در c++ (http://pasak.org/showproduct.php?id=146)

تاریخ: 10تیر89

در اين برنامه دو آرايه 40 رقمي و يک آرايه 80 رقمي تعريف شده است که در تابع multiply جواب ضرب محاسبه مي شود



http://pasak.org/admin/img_product/146.jpg


ادامه مطلب (http://pasak.org/showproduct.php?id=146)

javadzi
یک شنبه 19 مرداد 1393, 00:05 صبح
[QUOTE=amin1softco;899909]برنامه ضرب دو عدد 20 رقمی
mr33333333333333300000000000000000000000000

javadzi
یک شنبه 19 مرداد 1393, 00:09 صبح
بچه ها میتونید const int r=50,f=100
قبل آرایه تعریف کنید و به جای عداد و خانه های درون آرایه استفاده کنید و
r-1 یا f-1
در برنامه
برا جمع و ضرب دو عدد 50 رقمی امتحان کردم جواب داد

omid_kma
یک شنبه 19 مرداد 1393, 00:18 صبح
چطور اعداد بزرگ تولید کنیم ؟ (http://www.7khatcode.com/index.php?qa=2085&qa_1=%DA%86%D8%B7%D9%88%D8%B1-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A8%D8%B2%D8%B1%DA%AF-%D8%AA%D9%88%D9%84%DB%8C%D8%AF-%DA%A9%D9%86%DB%8C%D9%85-%D8%9F)
سوالات مرتبط
(http://www.7khatcode.com/index.php?qa=tag&qa_1=big-numbers)