
Chương trình cộng 2 số nguyên vô cùng lớn (hàng chục chữ số) dùng Mảng.
#include <stdio.h>
#include <conio.h>
#include <string.h>
int n1,n2,n;
int s1[1000],s2[1000];
char s[1000];
void nhan()
{
int nho,i,bac,tich,j;
int tong[1000]={0},tg[1000]={0};
int nmax,ntg;
n=0;
bac=1;
tich=1;
nho=0;
nmax=0;
for (j=0;j<=n2;j++)
{
bac=j;
for (i=0;i<=n1;i++)
{
tich=s1[i]*s2[j]+nho;
tg[i+bac]=tich%10;
nho=tich/10;
}
ntg=n1+bac;
while (nho)
{
ntg++;
tg[ntg]=nho%10;
nho/=10;
}
for (i=bac;i<=ntg;i++)
{
tong[i]+=tg[i]+nho;
nho=tong[i]/10;
tong[i]%=10;
}
while (nho)
{
ntg++;
tong[ntg]=tong[ntg]+nho%10;
nho=nho/10;
}
if (ntg>nmax) nmax=ntg;
}
for (i=nmax;i>=0;i--) printf("%d",tong[i]);
}void main()
{
int i;
clrscr();
printf("Chuong trinh nhan so lon\n");
printf("so thu nhat: ");
gets(s);
n1=strlen(s)-1;
for (i=0;i<=n1;i++) s1[n1-i]=s[i]-48;
printf("so thu hai: ");
gets(s);
n2=strlen(s)-1;
for (i=0;i<=n1;i++) s2[n2-i]=s[i]-48;
printf("\nTich la: ");
nhan();
getch();
}
Mời các bạn tham gia đóng góp xây dựng.
Labels:
Học tập



